您好,登錄后才能下訂單哦!
如何進(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)將消息推送給客戶端。
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的加密版本。
隨著互聯(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é)議的交互過程如下圖所示
微信小程序支持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í)。
免責(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)容。