溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行Socke、WS、WSS的對(duì)比分析

發(fā)布時(shí)間:2021-12-24 09:42:34 來源:億速云 閱讀:201 作者:柒染 欄目:互聯(lián)網(wǎng)科技

如何進(jìn)行Socke、WS、WSS的對(duì)比分析,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

Socket 通信

Socket 不屬于網(wǎng)絡(luò)協(xié)議范疇,而是在應(yīng)用層和傳輸層之間的一個(gè)抽象層,它把 TCP/IP 層復(fù)雜的操作抽象為幾個(gè)簡(jiǎn)單的接口供應(yīng)用層調(diào)用。通過調(diào)用 Socket 使得程序員可以更方便地使用 TCP/IP 協(xié)議棧。

Socket 連接是長連接,理論上客戶端和服務(wù)器端一旦建立連接將不會(huì)主動(dòng)斷開此連接。Socket 連接屬于請(qǐng)求-響應(yīng)形式,服務(wù)端可主動(dòng)將消息推送給客戶端。

如何進(jìn)行Socke、WS、WSS的對(duì)比分析

 

WebSocket/WSS介紹

WebSocket (WS)是HTML5一種新的協(xié)議。它實(shí)現(xiàn)了瀏覽器與服務(wù)器全雙工通信,能更好地節(jié)省服務(wù)器資源和帶寬并達(dá)到實(shí)時(shí)通訊。


WebSocket建立在TCP之上,同HTTP一樣通過TCP來傳輸數(shù)據(jù),但是它和HTTP最大不同是:

WebSocket是一種雙向通信協(xié)議,在建立連接后,WebSocket服務(wù)器和Browser/Client Agent都能主動(dòng)的向?qū)Ψ桨l(fā)送或接收數(shù)據(jù),就像Socket一樣;

WebSocket需要類似TCP的客戶端和服務(wù)器端通過握手連接,連接成功后才能相互通信。


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

 

WS/WSS使用場(chǎng)景

隨著互聯(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)的模式帶來很明顯的缺點(diǎn),即瀏覽器需要不斷地向服務(wù)器發(fā)出請(qǐng)求,然而HTTP請(qǐ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é)議的交互過程如下圖所示

如何進(jìn)行Socke、WS、WSS的對(duì)比分析

小程序中WSS相關(guān)的API

微信小程序支持WSS協(xié)議,提供如下API:

WebSocket

  • wx.sendSocketMessage

  • wx.onSocketOpen

  • wx.onSocketMessage

  • wx.onSocketError

  • wx.onSocketClose

  • wx.connectSocket

  • wx.closeSocket

支付寶小程序支持WSS協(xié)議,提供如下API:

WebSocket

  • my.connectSocket

  • my.onSocketOpen

  • my.offSocketOpen

  • my.onSocketError

  • my.offSocketError

  • my.sendSocketMessage

  • my.onSocketMessage

  • my.offSocketMessage

  • my.closeSocket

  • my.onSocketClose

  • my.offSocketClose

小程序MQTT接入IoT物聯(lián)網(wǎng)平臺(tái)

微信小程序和支付寶小程序都支持WSS協(xié)議,我們就可以使用MQTT over Websocket的方式接入IoT物聯(lián)網(wǎng)平臺(tái),實(shí)現(xiàn)雙向通信能力。

關(guān)于如何進(jìn)行Socke、WS、WSS的對(duì)比分析問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI