MQTT協議-MQTT協議簡介
MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協議),是一個客戶端服務端架構的發布/訂閱模式的“輕量級”消息傳輸協議。MQTT控制報文由三部分組成,依次為:固定報頭(Fixed header)、可變報頭(Variable header)、有效載荷(Payload)。
1、MQTT協議的特點
客戶端Client 使用MQTT的程序或設備,客戶端總是通過網絡連接到服務端。它可以
(1)發布應用消息給其它相關的客戶端。
(2)訂閱以請求接受相關的應用消息,
(3)取消訂閱以移除接受應用消息的請求。
(4)從服務端斷開連接。
服務端Server 一個程序或設備,作為發送消息的客戶端和請求訂閱的客戶端之間的中介。服務端
(1)接受來自客戶端的網絡連接。
(2)接受客戶端發送的應用消息。
(3)處理客戶端的訂閱和取消訂閱請求。
(4)轉發應用消息給符合條件的已訂閱客戶端。
2、MQTT協議的格式
(1)固定報頭,每個MQTT控制報文都包含,用來描述數據報文類型以及指定控制報文類型的標志位。
Byte | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
byte 1 | MQTT控制報文類型 | 指定控制報文類型的標志位 | ||||||
byte 2 | 數據包剩余長度 |
控制報文的類型:
名字 | 值 | 報文流動方向 | 描述 |
Reserved | 0 | 禁止 | 保留 |
CONNECT | 1 | 客戶端到服務端 | 客戶端請求連接服務端 |
CONNACK | 2 | 服務端到客戶端 | 連接報文確認 |
PUBLISH | 3 | 兩個方向都允許 | 發布消息 |
SUBSCRIBE | 8 | 客戶端到服務端 | 客戶端訂閱請求 |