低延遲應用程式通常需要比HTTP提供的更快的通信方式。 示例包括多人線上遊戲或聊天應用程式,其中需要實時交互式通信來提供正確的用戶體驗。 WebSockets是一種實時通信協議,它允許客戶端和伺服器之間建立開放,連續的雙向連接。 這樣,即使客戶無需請求數據,也可以將數據發送到客戶端(即瀏覽器)。 使用HTTP協議時,伺服器僅在客戶端發送請求時才作出響應。
金融機構是WebSockets的另一個使用案例。 最近,我們與一家北美主要銀行合作,使用WebSocket協議為其原始伺服器建立開放連接,以便在交易完成時發送實時通知,而無需客戶輪詢。
WebSocket協議如何工作?
WebSocket連接以常規HTTP連接啟動。 要建立WebSocket連接,客戶端和服務器在初始握手(此協議開關稱爲WebSocket握手)期間將從HTTP協議升級到WebSocket協議。 要啓動此升級,客戶端使用以下標頭向服務器發送請求:
-
Connection:Upgrade (連接:升級)–表示客戶端想要更改協議
-
升級:WebSocket–表示請求的協議是“WebSocket”
如果伺服器理解WebSocket協議並同意交換機,它將發送一個特殊響應代碼:101 (交換協議),其中包含相同的兩個報頭。 此時,HTTP連接將由相同基礎TCP/IP連接上的WebSocket連接替換。 建立後,WebSocket數據幀可以在客戶端和服務器之間以全雙工模式來回發送,直到一端關閉連接。
WebSockets over HTTP的主要優點包括:
-
永久連接:客戶端無需經常重新啟動連接檢查以查找新數據。
-
更低的延遲:WebSockets使用的開銷最小。 由於存在連續連接,因此不再需要發送與HTTP請求相關的正常開銷(如標頭和其他信息),從而減少了延遲。
-
全雙工通信:WebSockets提供伺服器和客戶端之間的雙向通信,以便雙方可以同時通信和交換數據。 EdgeCast (現稱為Edgio)很高興在我們的全球交付網路中為WebSocket協議提供支援。 隨著我們進入物聯網和邊緣計算時代,WebSocket協議將使希望在邊緣提供低延遲應用的公司受益。