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

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