Websocket 協議
- Http 協議是單向傳輸協議,只能由客戶端主動發送消息給服務端。而在我們的聊天室中,一個用戶發送消息后, 聊天室其他用戶會收到消息通知。如果用 Http 協議去實現的話, 由于 Http 協議是單向傳輸的, 所以每個客戶端需要定時向后端請求, 看有沒有人給他發消息。這樣做的缺點是非常消耗資源, 每次要經過三次握手和四次揮手而且收到消息的及時性跟請求的頻率有關。
- 我們需要一種協議, 它支持雙向傳輸并且是長連接,符合條件的有幾種, 為什么要選擇 Websocket 協議呢? 因為 Web 端的話目前就 Websocket 協議支持。
- 建立 Websocket 時,客戶端向服務端發請一個 Http 請求, 頭部信息里附加了"Upgrade: websocket", (如下圖) 表明這是一個申請協議升級的 Http 請求。連接建立后, 雙方可以自由通訊, 直到有一方斷開連接。