您好,登錄后才能下訂單哦!
如何進行Socke、WS、WSS的對比分析,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
Socket 通信
Socket 不屬于網絡協議范疇,而是在應用層和傳輸層之間的一個抽象層,它把 TCP/IP 層復雜的操作抽象為幾個簡單的接口供應用層調用。通過調用 Socket 使得程序員可以更方便地使用 TCP/IP 協議棧。
Socket 連接是長連接,理論上客戶端和服務器端一旦建立連接將不會主動斷開此連接。Socket 連接屬于請求-響應形式,服務端可主動將消息推送給客戶端。
WebSocket (WS)是HTML5一種新的協議。它實現了瀏覽器與服務器全雙工通信,能更好地節省服務器資源和帶寬并達到實時通訊。
WebSocket建立在TCP之上,同HTTP一樣通過TCP來傳輸數據,但是它和HTTP最大不同是:
WebSocket是一種雙向通信協議,在建立連接后,WebSocket服務器和Browser/Client Agent都能主動的向對方發送或接收數據,就像Socket一樣;
WebSocket需要類似TCP的客戶端和服務器端通過握手連接,連接成功后才能相互通信。
WSS(Web Socket Secure)是WebSocket的加密版本。
隨著互聯網的蓬勃發展,各種類型的Web應用層出不窮,很多應用要求服務端有能力進行實時推送能力(比如直播間聊天室),以往很多網站為了實現推送技術,所用的技術都是輪詢。輪詢是在特定的的時間間隔(如每1秒),由瀏覽器對服務器發出HTTP請求,然后由服務器返回最新的數據給客戶端的瀏覽器。這種傳統的模式帶來很明顯的缺點,即瀏覽器需要不斷地向服務器發出請求,然而HTTP請求可能包含較長的頭部,其中真正有效的數據可能只是很小的一部分,顯然這樣會浪費很多的帶寬資源。
在這種情況下,HTML5定義了WebSocket協議,能更好地節省服務器資源和帶寬,并且能夠更實時地進行通訊。WebSocket實現了瀏覽器與服務器全雙工(full-duplex)通信,允許服務器主動發送信息給客戶端。
WebSocket協議的交互過程如下圖所示
微信小程序支持WSS協議,提供如下API:
WebSocket
wx.sendSocketMessage
wx.onSocketOpen
wx.onSocketMessage
wx.onSocketError
wx.onSocketClose
wx.connectSocket
wx.closeSocket
支付寶小程序支持WSS協議,提供如下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物聯網平臺
微信小程序和支付寶小程序都支持WSS協議,我們就可以使用MQTT over Websocket的方式接入IoT物聯網平臺,實現雙向通信能力。
關于如何進行Socke、WS、WSS的對比分析問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。