什麼是WS/WSS?

WebSocket (WS)是HTML5一種新的協議。它實現了瀏覽器與伺服器全雙工系統通訊,能更好地節省伺服器資源和頻寬並達到即時通訊。WebSocket建立在TCP之上,同HTTP一樣通過TCP來傳輸資料,但是它和HTTP最大不同是:

WebSocket是一種雙向通訊協定,在建立串連後,WebSocket伺服器和Browser/Client Agent都能主動的向對方發送或接收資料,就像Socket一樣;WebSocket需要類似TCP的用戶端和伺服器端通過握手串連,串連成功後才能相互通訊。

WSS(Web Socket Secure)是WebSocket的加密版本。

為何使用WS/WSS?

隨著互連網的蓬勃發展,各種類型的Web應用程式層出不窮,很多應用要求服務端有能力進行即時推送能力(比如直播間聊天室),以往很多網站為了實現推送技術,所用的技術都是輪詢。輪詢是在特定的的時間間隔(如每1秒),由瀏覽器對伺服器發出HTTP請求,然後由伺服器返回最新的資料給用戶端的瀏覽器。這種傳統的模式帶來很明顯的缺點,即瀏覽器需要不斷地向伺服器發出請求,然而HTTP請求可能包含較長的頭部,其中真正有效資料可能只是很小的一部分,顯然這樣會浪費很多的頻寬資源。

在這種情況下,HTML5定義了WebSocket協議,能更好地節省伺服器資源和頻寬,並且能夠更即時地進行通訊。WebSocket實現了瀏覽器與伺服器全雙工系統(full-duplex)通訊,允許伺服器主動發送資訊給用戶端。

WebSocket協議的互動過程如下圖所示。



如何在阿里雲負載平衡上啟用WS/WSS支援?

無需配置,當選用HTTP監聽時,預設支援無加密版本WebSocket協議(WS協議);當選擇HTTPS監聽時,預設支援加密版本的WebSocket協議(WSS協議)。

说明 需要將執行個體升級為效能保障型執行個體。詳細參見如何使用負載平衡效能保障型執行個體。

支援的地域

全部地域都已開放WS/WSS支援。

限制

WSS/WS協議支援的約束如下:

  • 負載平衡與ECS後端服務的串連採用HTTP/1.1,建議後端伺服器採用支援HTTP/1.1的Web Server。
  • 若負載平衡與後端服務超過60秒無消息互動,會主動中斷連線,如需要維持串連一直不中斷,需要主動實現保活機制,每60秒內進行一次報文互動。

收費政策

WSS/WS協議支援不額外收取費用。