久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      socketio必須用在node中嗎

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

      socketio必須用在node中嗎

      本文操作環(huán)境:Windows10系統(tǒng)、nodejs 16版、Dell G3電腦。

      socketio必須用在node中

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

      SocketIO是在客戶端和服務(wù)端之間建立的雙向通信數(shù)據(jù)交換技術(shù),底層使用EngineIO。SocketIO的的客戶端使用Engine.IO-Client,服務(wù)端使用Engine.IO實(shí)現(xiàn)。

      擴(kuò)展知識

      SocketIO如何工作

      當(dāng)一個(gè)瀏覽器嘗試建立SocketIO時(shí),SocketIO首先使用xhr-polling創(chuàng)建一個(gè)長輪詢。長輪詢一旦建立,它將升級為WebSocket連接。

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

      客戶端

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

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

      sid 是本次 EIO Socket 的會(huì)話 ID,因?yàn)橐淮?EIO Socket 包含了多個(gè)請求,而后端又會(huì)同時(shí)連接多個(gè) EIO Socket,sid 的作用就相當(dāng)于 SESSION ID。

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

      前端在發(fā)送第一個(gè) XHR 的時(shí)候就開始了 XHR 長輪詢,這個(gè)時(shí)候如果有收發(fā)數(shù)據(jù)的需求,是通過長輪詢實(shí)現(xiàn)的。所謂長輪詢,是指前端發(fā)送一個(gè) request,服務(wù)端會(huì)等到有數(shù)據(jù)需要返回時(shí)再 response. 前端收到 response 后馬上發(fā)送下一次 request。這樣就可以實(shí)現(xiàn)雙向通信。

      前端收到握手的 upgrades 后,EIO 會(huì)檢測瀏覽器是否支持 WebSocket,如果支持,就會(huì)啟動(dòng)一個(gè) WebSocket 連接,然后通過這個(gè) WebSocket 往服務(wù)器發(fā)一條內(nèi)容為 probe, 類型為 ping 的數(shù)據(jù)。如果這時(shí)服務(wù)器返回了內(nèi)容為 probe, 類型為 pong 的數(shù)據(jù),前端就會(huì)把前面建立的 HTTP 長輪詢停掉,后面只使用 WebSocket 通道進(jìn)行收發(fā)數(shù)據(jù)

      EIO Socket 生命周期內(nèi),會(huì)間隔一段時(shí)間 ping – pong 一次,用來測試網(wǎng)絡(luò)是否正常。

      socketio必須用在node中嗎

      這是 WebSocket 幀的結(jié)構(gòu),綠色是發(fā)送,白色是接收。前面的數(shù)字是數(shù)據(jù)包類型,2 是 ping, 3 是 pong, 42是 message

      推薦學(xué)習(xí):《nodejs視頻教程》

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號