阿里云WS/WSS協(xié)議支持常見問題
什么是WS/WSS?
WebSocket (WS)是HTML5一種新的協(xié)議。它實現(xiàn)了瀏覽器與服務(wù)器全雙工通信,能更好地節(jié)省服務(wù)器資源和帶寬并達(dá)到實時通訊。WebSocket建立在TCP之上,同HTTP一樣通過TCP來傳輸數(shù)據(jù),但是它和HTTP最大不同是:
WebSocket是一種雙向通信協(xié)議,在建立連接后,WebSocket服務(wù)器和Browser/Client Agent都能主動的向?qū)Ψ桨l(fā)送或接收數(shù)據(jù),就像Socket一樣;WebSocket需要類似TCP的客戶端和服務(wù)器端通過握手連接,連接成功后才能相互通信。
WSS(Web Socket Secure)是WebSocket的加密版本。
為何使用WS/WSS?
隨著互聯(lián)網(wǎng)的蓬勃發(fā)展,各種類型的Web應(yīng)用層出不窮,很多應(yīng)用要求服務(wù)端有能力進(jìn)行實時推送能力(比如直播間聊天室),以往很多網(wǎng)站為了實現(xiàn)推送技術(shù),所用的技術(shù)都是輪詢。輪詢是在特定的的時間間隔(如每1秒),由瀏覽器對服務(wù)器發(fā)出HTTP請求,然后由服務(wù)器返回最新的數(shù)據(jù)給客戶端的瀏覽器。這種傳統(tǒng)的模式帶來很明顯的缺點,即瀏覽器需要不斷地向服務(wù)器發(fā)出請求,然而HTTP請求可能包含較長的頭部,其中真正有效的數(shù)據(jù)可能只是很小的一部分,顯然這樣會浪費很多的帶寬資源。
在這種情況下,HTML5定義了WebSocket協(xié)議,能更好地節(jié)省服務(wù)器資源和帶寬,并且能夠更實時地進(jìn)行通訊。WebSocket實現(xiàn)了瀏覽器與服務(wù)器全雙工(full-duplex)通信,允許服務(wù)器主動發(fā)送信息給客戶端。
WebSocket協(xié)議的交互過程如下圖所示。

如何在阿里云負(fù)載均衡上啟用WS/WSS支持?
無需配置,當(dāng)選用HTTP監(jiān)聽時,默認(rèn)支持無加密版本W(wǎng)ebSocket協(xié)議(WS協(xié)議);當(dāng)選擇HTTPS監(jiān)聽時,默認(rèn)支持加密版本的WebSocket協(xié)議(WSS協(xié)議)。
|
說明 |
| 需要將實例升級為性能保障型實例。詳細(xì)參見如何使用負(fù)載均衡性能保障型實例。 |
支持的地域
全部地域都已開放WS/WSS支持。
限制
WSS/WS協(xié)議支持的約束如下:
- 負(fù)載均衡與ECS后端服務(wù)的連接采用HTTP/1.1,建議后端服務(wù)器采用支持HTTP/1.1的Web Server。
- 若負(fù)載均衡與后端服務(wù)超過60秒無消息交互,會主動斷開連接,如需要維持連接一直不中斷,需要主動實現(xiàn)保活機(jī)制,每60秒內(nèi)進(jìn)行一次報文交互。
收費政策
WSS/WS協(xié)議支持不額外收取費用。
