當前位置:編程學習大全網 - 源碼下載 - MQTT和Websocket有什麽區別?

MQTT和Websocket有什麽區別?

MQTT是壹種輕量級的基於代理的發布/訂閱消息傳輸協議,其設計思想是開放、簡單、輕量級、易於實現的。這些特點使它適用於有限的環境。例如:

①網絡貴,帶寬低,不可靠;②運行在嵌入式設備上,處理器和內存資源有限。

本協議的特點是:

①使用發布/訂閱消息模式,提供壹對多的消息發布,解耦應用。

(2)負載內容屏蔽的消息傳輸。

③使用TCP/IP提供網絡連接。

(4)消息發布服務質量有三種:

⑤“最多壹次”,消息發布完全依賴底層TCP/IP網絡。可能會出現消息丟失或重復。該級別可用於以下情況。環境傳感器數據丟失壹次也沒關系,因為很快就會有第二次傳輸。

⑥“至少壹次”保證消息到達,但可能出現消息重復。

⑦“僅壹次”,確保消息到達壹次。當重復或丟失的消息將導致計費系統中的錯誤結果時,可以使用該級別。

⑧傳輸小,開銷小(定長頭2字節),協議交換最小化,減少網絡流量。

⑨使用遺囑和遺囑功能通知有關各方異常客戶端中斷的機制。

WebSocket提供了壹種使用TCP連接進行雙向通信的機制,包括網絡協議和API,而不是使用HTTP輪詢在網頁和服務器之間進行雙向通信的機制。

本質上,WebSocket並不局限於HTTP協議,而是因為大量現有的HTTP基礎設施、代理、過濾、認證等等,WebSocket借用了HTTP和HTTPS端口。因為使用了HTTP的端口,所以TCP連接建立後的握手消息是基於HTTP的,服務器判斷是HTTP協議還是WebSocket協議。WebSocket連接除了建立和關閉時握手之外,與HTTP無關。

可見兩者的應用場景是不同的:

MQTT是針對物聯網場景設計的基於TCP的Pub/Sub協議,有很多針對物聯網優化的特性,比如QoS、分層主題、遺言等等。

WebSocket是為HTML5應用程序設計的協議,用於促進與服務器的雙向通信。用HTTP握手,然後用TCP協議來代替服務器推送、Comet、長輪詢等舊的實現。

都是因為壹個應用場景而產生交集:如何使用HTML5應用作為MQTT的客戶端接收設備消息或者向設備發送信息,那麽MQTT over WebSocket自然成為最合理的方式。

  • 上一篇:壹切有為法如夢幻泡影,如露亦如電,當作如是觀。美好的愛情,原來都是虛幻?
  • 下一篇:今日頭條運營模式全攻略(今日頭條的運營模式和盈利模式)
  • copyright 2024編程學習大全網