什么是MQTT?
MQTT是一種輕量級消息傳遞協議,由IBM開發(fā),于1999年首次發(fā)布。它使用發(fā)布/訂閱模式并在設備、服務器和應用程序之間轉換消息。最初,MQTT的創(chuàng)建目的是為了將石油管道上的傳感器與通信衛(wèi)星連接起來,重點是最大限度地減少電池使用和帶寬消耗。MQTT自誕生以來一直在不斷發(fā)展。2018年5月發(fā)布的5.0版本為MQTT協議帶來了重大變化和增強。
在MQTT協議中,連接的設備稱為“客戶端”,它們與稱為“代理”的服務器進行通信。代理處理客戶端之間的數據傳輸任務。
每當客戶端(也稱為“發(fā)布者”)想要分發(fā)信息時,它就會發(fā)布特定主題。然后,代理將此信息轉發(fā)給已訂閱該主題的任何客戶端(稱為“訂閱者”) 。
發(fā)布者不需要有關訂閱者數量或位置的數據,訂閱者也不需要有關發(fā)布者的任何數據。任何客戶端都可以充當發(fā)布者、訂閱者或兩者。通常情況下,客戶彼此不認識,只知道充當中介的經紀人。這種設置通常稱為“發(fā)布/訂閱模型”。
MQTT協議中的方法
MQTT協議中定義了一些方法(也被稱為動作), 來于表示對確定資源所進行操作。 這個資源可以代表預先存在的數據或動態(tài)生成數據,這取決于服務器的實現。通常來說,資源指服務器上的文件或輸出。
Connect,等待與服務器建立連接
Disconnect,等待MQTT客戶端完成所做的工作,并與服務器斷開TCP/IP會話
Subscribe,等待完成訂閱
UnSubscribe,等待服務器取消客戶端的一個或多個topics訂閱
Publish,MQTT客戶端發(fā)送消息請求,發(fā)送完成后返回應用程序線程
mqtt協議和http協議區(qū)別
MQTT(Message Queuing Telemetry Transport)協議和HTTP(Hypertext Transfer Protocol)協議是兩種不同的通信協議,它們在很多方面有著明顯的區(qū)別,主要包括以下幾點:
1. **通信方式**:
- MQTT 是一種發(fā)布/訂閱(Publish/Subscribe)協議,它基于消息隊列的模式,消息的發(fā)布者和訂閱者是解耦的,消息通過消息代理(Broker 服務器)進行傳遞。
- HTTP 是一種請求/響應(Request/Response)協議,客戶端通過請求消息與服務器通信,服務器收到請求后返回響應消息。
2. **實時性**:
- MQTT 協議支持實時消息傳遞,具有較低的延遲和節(jié)省網絡帶寬的特點。
- HTTP 協議通常是短連接方式,每次請求需要建立連接、發(fā)送請求、收到響應后斷開連接,傳輸效率不如 MQTT。
3. **連接性質**:
- MQTT 支持客戶端保持長連接,可以隨時發(fā)送和接收消息,適合實時性要求高的場景。
- HTTP 是一種短連接協議,每次請求都需要建立連接,適用于間歇性的請求和響應通信。
4. **消息格式**:
- MQTT 的消息格式較輕量,頭部信息較小,適合在網絡帶寬有限的情況下傳輸小量數據。
- HTTP 的消息格式較重,每次請求的頭部信息較多,適合傳輸較大量的數據和資源。
5. **應用場景**:
- MQTT 更適合物聯網設備之間的實時通信,如傳感器數據的實時監(jiān)控和控制。
- HTTP 更適合傳統(tǒng)的網頁瀏覽和數據傳輸,如網頁的訪問和內容下載等。
MQTT 和 HTTP 在通信方式、實時性、連接性質、消息格式和應用場景等方面有明顯的區(qū)別,開發(fā)人員在選擇使用哪種協議時應根據具體需求和應用場景來進行選擇。
審核編輯:黃飛
-
HTTP
+關注
關注
0文章
511瀏覽量
31519 -
客戶端
+關注
關注
1文章
290瀏覽量
16766 -
MQTT
+關注
關注
5文章
653瀏覽量
22698
發(fā)布評論請先 登錄
相關推薦
【HarmonyOS】 MQTT 協議開發(fā)入門
MQTT 協議開發(fā)入門
MQTT協議的相關資料推薦
玩轉mqtt協議的方法
MQTT 5協議你知道多少?
智聯物聯分享之物聯網協議MQTT簡述,MQTT協議特點
![智聯物聯分享之物聯網<b class='flag-5'>協議</b><b class='flag-5'>MQTT</b>簡述,<b class='flag-5'>MQTT</b><b class='flag-5'>協議</b>特點](https://file.elecfans.com/web2/M00/9B/98/pYYBAGQipnGADrm7AAA2kSdrk3I782.png)
評論