什么是WS、WSS?
WS是Web Socket的縮寫,WebSocket是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é)議的交互過程如下圖所示。
如何在高防IP上啟用WS、WSS支持?
- 啟用WS支持:在域名接入時,選擇websocket協(xié)議類型。
- 如果希望把websocket服務(wù)端建立在一個非http(默認(rèn)為80)端口監(jiān)聽:
- 創(chuàng)建一個新的二級域名如
websocket.domain.com
來實現(xiàn),完成解析到高防IP后,將前端代碼中的websocket客戶端connect指向該二級域名。 - 在高防IP用戶端將添加該websocket二級域名綁定好源機(jī)后,修改端口為對應(yīng)的監(jiān)聽端口。
- 創(chuàng)建一個新的二級域名如
- 如果希望仍使用http(默認(rèn)為80)端口來使用websocket服務(wù)端,則不需要以上配置,直接使用即可。
- 針對個別情況,也可以將websocket客戶端connect指向源機(jī)IP:端口。此時該連接可以正常使用,但不會受到億速云高防服務(wù)的保護(hù)。
- 如果希望把websocket服務(wù)端建立在一個非http(默認(rèn)為80)端口監(jiān)聽:
- 啟用WSS支持:在域名接入時,選擇websockets協(xié)議類型,并在完成域名接入后上傳域名的HTTPS證書。