MQTT和Websocket的區別是什麼?
12-28
MQTT和Websocket兩種協議有什麼區別和聯繫?
在ibm的developerWorks里也有MQTT over WebSocket
看上去像是一個是基於各種機器的 一個只是瀏覽器和伺服器溝通的
MQTT協議及拓展
MQTT 跟 Websocket 可以認為是不同層面的協議。MQTT 做原生設備的通信,MQTT over WebSocket 主要用於 MQTT 設備跟 Web 端通信。
兩者的應用場景不一樣:
- MQTT是為了物聯網場景設計的基於TCP的Pub/Sub協議,有許多為物聯網優化的特性,比如適應不同網路的QoS、層級主題、遺言等等。
- WebSocket是為了HTML5應用方便與伺服器雙向通訊而設計的協議,HTTP握手然後轉TCP協議,用於取代之前的Server Push、Comet、長輪詢等老舊實現。
兩者之所有有交集,是因為一個應用場景:如何通過HTML5應用來作為MQTT的客戶端,以便接受設備消息或者向設備發送信息,那麼MQTT over WebSocket自然成了最合理的途徑了。
曾經粗淺地看過MQTT,感覺對MQTT嵌入式開發友好,協議設計用於不能經常聯網的設備。
推薦閱讀: