本文介紹WebSocket和WebSocket Secure協議相關的簡介。
什麼是WebSocket?
WebSocket是HTML5一種新的協議,它實現了瀏覽器與伺服器全雙工系統(full-duplex)通訊,能更好地節省伺服器資源和頻寬並達到即時通訊。WebSocket建立在TCP之上,同HTTP一樣通過TCP來傳輸資料,但是它和HTTP最大不同是:WebSocket是一種雙向通訊協定,在建立串連後,WebSocket伺服器和Browser/Client Agent都能主動地向對方發送或接收資料,就像Socket一樣;WebSocket需要類似TCP的用戶端和伺服器端通過握手串連,串連成功後才能相互連信。
WebSocket Secure是WebSocket的加密版本。
為何使用WebSocket?
隨著互連網的蓬勃發展,各種類型的Web應用程式層出不窮,很多應用要求服務端有能力進行即時推送(例如直播間聊天室),以往很多網站為了實現推送技術,所用的技術都是輪詢。輪詢是在特定的時間間隔(如每1秒),由瀏覽器對伺服器發出HTTP請求,然後由伺服器返回最新的資料給用戶端的瀏覽器。這種傳統的模式帶來很明顯的缺點,即瀏覽器需要不斷地向伺服器發出請求,然而HTTP請求可能包含較長的頭部,其中真正有效資料可能只是很小的一部分,顯然這樣會浪費很多的頻寬資源。
在這種情況下,HTML5定義了WebSocket協議,能更好地節省伺服器資源和頻寬,並且能夠更即時地進行通訊。WebSocket實現了瀏覽器與伺服器全雙工系統通訊,允許伺服器主動發送資訊給用戶端。
WebSocket協議的互動過程如下圖所示。
如何在阿里雲負載平衡上啟用WebSocket和WebSocket Secure支援?
HTTP監聽預設支援WebSocket協議。
HTTPS監聽預設支援WebSocket Secure協議。
支援的地區
全部地區都已開放WebSocket和WebSocket Secure支援。
相關計費
WebSocket和WebSocket Secure協議不額外收取費用。
使用限制
WebSocket和WebSocket Secure協議的使用限制如下:
若負載平衡與ECS後端服務的串連採用HTTP/1.1,建議後端伺服器採用支援HTTP/1.1的Web Server。
若負載平衡與後端服務超過60秒無訊息互動,會主動中斷連線,如需要維持串連一直不中斷,需要主動實現保活機制,每60秒內進行一次報文互動。