91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

socketio一定要用在node中嗎

發布時間:2022-07-07 09:30:52 來源:億速云 閱讀:196 作者:iii 欄目:web開發

今天小編給大家分享一下socketio一定要用在node中嗎的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

socketio必須用在node中;socketio是nodejs的一個庫,利用nodejs的函數封裝了一些功能,并且依賴于nodejs的一些api,所以只能在nodejs中使用,socketio也是在客戶端和服務端之間建立的雙向通信數據交換技術,底層使用EngineIO。

本文操作環境:Windows10系統、nodejs 16版、Dell G3電腦。

socketio必須用在node中

socketio是nodejs的一個庫,相當于別人利用nodejs的函數封裝了一些功能給你使用,依賴與nodejs的一些api,所以只能在nodejs下用。

SocketIO是在客戶端和服務端之間建立的雙向通信數據交換技術,底層使用EngineIO。SocketIO的的客戶端使用Engine.IO-Client,服務端使用Engine.IO實現。

擴展知識

SocketIO如何工作

當一個瀏覽器嘗試建立SocketIO時,SocketIO首先使用xhr-polling創建一個長輪詢。長輪詢一旦建立,它將升級為WebSocket連接。

SocketIO底層是使用EngineIO庫實現的,這個庫使用WebSocket和XMLHttprequest封裝了一套自己的Socket協議(暫時叫 EIO Socket)。一個完整的 EIO Socket 包括多個 XHR 和 WebSocket 連接.

客戶端

EIO Socket 通過一個 XHR (XMLHttprequest) 握手。前端發送一個 XHR,告訴服務端我要開始 XHR 長輪詢了。后端返回的數據里面包括一個 open 標志(數字 0 表示), 以及sid 和 upgrades 字段,ping時間間隔,ping超時時間。

0{
“sid”: “8b7ab1ae-fbcf-4d23-8192-3c14a2a90721”,
“upgrades”: [
“websocket”
],
“pingInterval”: 10000,
“pingTimeout”: 60000
}

sid 是本次 EIO Socket 的會話 ID,因為一次 EIO Socket 包含了多個請求,而后端又會同時連接多個 EIO Socket,sid 的作用就相當于 SESSION ID。

另一個字段 upgrades,正常情況下是 [‘websocket’],表示可以把連接方式從長輪詢升級到 WebSocket。

前端在發送第一個 XHR 的時候就開始了 XHR 長輪詢,這個時候如果有收發數據的需求,是通過長輪詢實現的。所謂長輪詢,是指前端發送一個 request,服務端會等到有數據需要返回時再 response. 前端收到 response 后馬上發送下一次 request。這樣就可以實現雙向通信。

前端收到握手的 upgrades 后,EIO 會檢測瀏覽器是否支持 WebSocket,如果支持,就會啟動一個 WebSocket 連接,然后通過這個 WebSocket 往服務器發一條內容為 probe, 類型為 ping 的數據。如果這時服務器返回了內容為 probe, 類型為 pong 的數據,前端就會把前面建立的 HTTP 長輪詢停掉,后面只使用 WebSocket 通道進行收發數據

EIO Socket 生命周期內,會間隔一段時間 ping - pong 一次,用來測試網絡是否正常。

socketio一定要用在node中嗎

這是 WebSocket 幀的結構,綠色是發送,白色是接收。前面的數字是數據包類型,2 是 ping, 3 是 pong, 42是 message

以上就是“socketio一定要用在node中嗎”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安多县| 布拖县| 连平县| 惠水县| 大丰市| 罗田县| 喜德县| 台江县| 汝南县| 信阳市| 伊金霍洛旗| 钦州市| 宝山区| 松原市| 天柱县| 垦利县| 翼城县| 贡觉县| 象山县| 纳雍县| 忻城县| 迁安市| 万载县| 汽车| 牙克石市| 郴州市| 南召县| 株洲市| 博白县| 和平县| 新民市| 菏泽市| 望江县| 阿城市| 清苑县| 高尔夫| 开江县| 泰宁县| 兴和县| 台南市| 柞水县|