MQTT--物联网(IoT)消息推送协议
簡介
MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協議)是一種構建于TCP/IP協議的"輕量級"消息傳輸協議,它基于發布/訂閱(publish/subscribe)模式,由IBM在1999年發布。對于需要較小代碼占用空間或網絡帶寬有限的遠程連接非常有用,是專為受限設備和低帶寬、高延遲或不可靠的網絡而設計。
基于這些優點,MQTT已成為物聯網智能家居的首選傳輸協議,還被用于通過衛星鏈路與代理通信的傳感器、與醫療服務提供者的撥號連接,以及一系列家庭自動化和小型設備場景。并且它也是移動應用的理想選擇,因為它體積小,功耗低,數據包最小,并且可以有效地將信息分配給一個或多個接收器。
特點
- 輕量、簡單、網絡開銷小、開放和易于實現
- 輕量級,
- 發布/訂閱模式,一對多消息發布
- 基于TCP/IP網絡連接,提供有序,無損,雙向連接
- 1字節固定報頭,2字節心跳報文,最小化傳輸開銷和協議交換,有效減少網絡流量
- 消息QoS支持,可靠傳輸保證,有三種消息發布質量(Qos):
qos=0:“至多一次”,這一級別會發生消息丟失或重復,消息發布依賴于TCP/IP網絡
qos=1:“至少一次”,確保消息到達,但消息重復可能會發生
qos=2:“只有一次”,確保消息到達一次 - 通知機制,異常中斷時會通知雙方
- 支持連續的會話控制
- 把傳輸量降到最低以提高傳輸效率
- 允許用戶動態創建主題,零運維成本
應用場景
MQTT協議廣泛應用于物聯網、移動互聯網、智能硬件、車聯網、電力能源等領域。
- 物聯網M2M通信,物聯網大數據采集
- Android消息推送,WEB消息推送
- 移動即時消息,例如Facebook Messenger
- 智能硬件、智能家具、智能電器
- 車聯網通信,電動車站樁采集
- 智慧城市、遠程醫療、遠程教育
- 電力、石油與能源等行業市場
協議實現方式
實現MQTT協議需要客戶端和服務器端通訊完成,在通訊過程中,MQTT協議中有三種身份:發布者(Publish)、代理(Broker)(服務器)、訂閱者(Subscribe)。其中,消息的發布者和訂閱者都是客戶端,消息代理是服務器,消息發布者可以同時是訂閱者。
MQTT傳輸的消息分為:主題(Topic)和負載(payload)兩部分:
- Topic,可以理解為消息的類型,訂閱者訂閱(Subscribe)后,就會收到該主題的消息內容(payload);
- payload,可以理解為消息的內容,是指訂閱者具體要使用的內容。
MQTT客戶端
一個使用MQTT協議的應用程序或者設備,它總是建立到服務器的網絡連接。客戶端可以:
- 發布其他客戶端可能會訂閱的信息;
- 訂閱其它客戶端發布的消息;
- 退訂或刪除應用程序的消息;
- 斷開與服務器連接;
MQTT服務器
MQTT服務器以稱為"消息代理"(Broker),可以是一個應用程序或一臺設備。它是位于消息發布者和訂閱者之間,它可以:
- 接受來自客戶的網絡連接;
- 接受客戶發布的應用信息;
- 處理來自客戶端的訂閱和退訂請求;
- 向訂閱的客戶轉發應用程序消息;
本文只是基礎的介紹,下篇將正式介紹如何在Qt中調用MQTT,以及如何連接服務器等流程。
參考資料:
https://www.runoob.com/w3cnote/mqtt-intro.html
http://mqtt.p2hp.com/
總結
以上是生活随笔為你收集整理的MQTT--物联网(IoT)消息推送协议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt 6的Qt 3D会是什么样?
- 下一篇: Qt开发MQTT(二) 之第三方QMQT