LIERDA
隨著 5G 時代的來臨,萬物互聯的偉大構想正在成為現實。2021年全球智能物聯網處于爆發式增長通道,設備數量超過250億臺。海量的設備接入和設備管理對網絡帶寬、通信協議以及平臺服務架構都帶來了很大挑戰。
物聯網通信協議作為聯通物與物的橋梁,在整個架構中起著關鍵作用。本文將以利爾達MB960/860模組為例,介紹如何接入云平臺MQTT協議搭建系統,幫助大家快速上手。
MQTT介紹
MQTT是一種基于發布/訂閱模式實現一對多通信的協議。它可為深度嵌入式設備提供物聯網的規模和連接性,憑借簡單易實現、支持 QoS、報文小等特點,占據了物聯網協議的半壁江山
MQTT由3種身份構成,分別是中介代理(broker)、發布者(publisher)和訂閱者(subscriber)。消息的發布者和訂閱者是客戶端,中介代理是服務器,消息的發布者同時可以是訂閱者。
作為一種輕量級的二進制協議,MQTT協議與傳統HTTP相比具有一個明顯的優勢:數據包開銷較小,數據包開銷小就意味著更容易進行網絡傳輸。還有一個優勢就是MQTT在客戶端容易實現,且具易用性,非常適合在蜂窩物聯網等資源有限的設備實現。
MQTT 重要概念
1、MQTT client
當我們討論關于客戶端的概念時,一般指的就是MQTT Client,包含publisher和subscriber。之所以有發布者和訂閱者這個概念,其實是一種相對的概念,就是指當前客戶端是在發布消息還是在接收消息,發布和訂閱的功能也可以由同一個 MQTT Client 實現。
MQTT 客戶端是指運行 MQTT 庫并通過網絡連接到 MQTT broker 的任何設備,這些設備可以從微控制器到成熟的服務器。基本上任何使用 TCP/IP 協議使用 MQTT 設備的都可以稱之為MQTT Client。MQTT 協議的客戶端實現非常簡單直接。易于實施是MQTT非常適合小型設備的原因之一。MQTT客戶端庫可用于多種編程語言,例如Android、Arduino、C、C++、C#、Go、iOS、Java、JavaScript 和 .NET。
2、MQTT broker
與 MQTT client 對應的就是 MQTT broker,broker 是任何發布/訂閱機構的核心,根據實現的不同,代理可以處理多達數百萬連接的 MQTT client。
broker 負責接收所有消息,過濾消息,確定是哪個 client 訂閱了每條消息,并將消息發送給對應的 client,broker 還負責保存會話數據,這些數據包括訂閱的和錯過的消息。broker 還負責客戶端的身份驗證和授權。
3、MQTT Connection
MQTT 是基于 TCP/IP 協議基礎之上的,所以 MQTT 的 client 和 broker 都需要 TCP/IP 協議的支持。
MQTT的連接總是在client和broker之間進行,client和 client之間并不會相互連接。如果要發起連接的話,那么 client就會向broker發起CONNECT消息,代理會使用 CONNACK消息和狀態碼進行響應。一旦client和 broker的連接建立后,broker就會使客戶端的連接一直處于打開狀態,直到client發出斷開命令或者連接中斷。
MQTT基于主題(Topic)消息路由
1、主題(Topic)
MQTT協議基于主題(Topic)進行消息路由,主題(Topic)類似URL路徑,例如:
chat/room/1
sensor/10/temperature
sensor/+/temperature
$SYS/broker/metrics/packets/received
$SYS/broker/metrics/#
主題(Topic)通過’/’分割層級,支持’+’, ‘#’通配符:
'+': 表示通配一個層級,例如a/+,匹配a/x, a/y
'#': 表示通配多個層級,例如a/#,匹配a/x, a/b/c/d
訂閱者與發布者之間通過主題路由消息進行通信,例如采用mosquitto命令行發布訂閱消息:
mosquitto_sub -t a/b/+ -q 1
mosquitto_pub -t a/b/c -m hello -q 1
注解:
訂閱者可以訂閱含通配符主題,但發布者不允許向含通配符主題發布消息。
2、MQTT消息QoS
MQTT發布消息QoS保證不是端到端的,是客戶端與服務器之間的。訂閱者收到MQTT消息的QoS級別,最終取決于發布消息的QoS和主題訂閱的QoS。
發布消息的QoS | 主題訂閱的QoS | 接收消息的QoS |
0 | 0 | 0 |
0 | 1 | 0 |
0 | 2 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
1 | 2 | 1 |
2 | 0 | 0 |
2 | 1 | 1 |
2 | 2 | 2 |
Qos0消息發布訂閱
Qos1消息發布訂閱
Qos2消息發布訂閱
-
MQTT
+關注
關注
5文章
682瀏覽量
23710
發布評論請先 登錄
利爾達RedCap模組通過OpenHarmony 生態兼容性測評!

【教程】設備通過MQTT協議接入OneNET平臺,建立可視化界面

MQTT網關接入工業物聯網平臺解析
MQTT.fx 連接Onenet 多協議接入平臺 MQTT協議(舊版)詳解

MQTT智能網關接入物聯網平臺:實現高效連接與數據交互
鋇錸PLC網關快速實現三菱、西門子PLC轉MQTT協議

鋇錸技術Modbus轉MQTT網關:橋接Modbus協議與MQTT協議

鋇錸Modbus轉MQTT網關支持一鍵接入華為云

評論