MQTT協議基礎資料

2021-10-07 22:31:07 字數 1407 閱讀 4993

mqtt(message queuing telemetry transport)

是iso 標準(iso/iec prf 20922)下基於發布/訂閱正規化的訊息協議。

它工作在tcp協議之上,與http同屬於應用層協議,預設埠號是1883,通常情況下使用tcp長連線進行通訊。

mqtt是乙個c/s架構的發布/訂閱模式的訊息傳輸協議。

伺服器端稱為broker,broker不負責具體業務,只負責**客戶端的訊息,將客戶端發布的資料,**到所有訂閱了該主題的客戶端。

mqtt的應用模式是多個客戶端之間的通訊,某個客戶端訂閱了主題後,它將會收到所有客戶端發布到該主題下面的資料。

這個「主題」和http協議中的uri類似,是一串識別符號。

在mqtt的協議框架下,實際處理業務資料的伺服器本質上也是乙個mqtt客戶端。

業務伺服器只需要實現乙個mqtt客戶端,而broker已經有大量成熟的軟體可以直接使用,大大降低了傳統伺服器軟體的開發難度。因此使得mqtt在物聯網場景廣泛應用。

mqtt客戶端一般工作流程:

1.建立tcp連線(1883埠);

2.傳送

連線請求(附帶客戶端id、使用者名稱、密碼等資訊,進行

登陸和認證),等待響應;

3.訂閱乙個或多個主題(還可以使用萬用字元);

4.發布乙個或多個主題(附帶有效載荷資料);

5.空閒時發起心跳請求,保有活連線;

6.接收已訂閱的主題資料;

7.傳送斷開請求;

8.斷開tcp連線;

mqtt協議使用2進製資料模式,資料報格式為:

固定包頭

可變包頭

有效載荷

最小2位元組,最大5位元組

可選長度

可選長度

固定包頭包含控制型別和包長度:

bit76543210

byte1

mqtt控制報文的型別

用於指定控制報文型別的標誌位

byte2

剩餘長度

byte3

剩餘長度(可選,當byte2大於0x80時有效)

byte4

剩餘長度(可選,當byte3大於0x80時有效)

byte5

剩餘長度(可選,當byte4大於0x80時有效)

可變包頭和有效載荷在此不詳述,詳見參考資料。

參考資料:

MQTT協議 MQTT協議簡介

mqtt messagequeuing telemetry transport,訊息佇列遙測傳輸 是ibm開發的乙個即時通訊協議。mqtt是面向m2m和物聯網的連線協議,採用輕量級發布和訂閱訊息傳輸機制。它的設計思想是輕巧 開放 簡單 規範,因此易於實現。這些特點使得它對很多場景來說都是很好的選擇,...

MQTT協議 MQTT協議解析

協議就是通訊雙方的乙個約定,即,表示第1位傳輸的什麼 第2位傳輸的什麼 在mqtt協議中,乙個mqtt資料報由 固定頭 fixed header 可變頭 variable header 訊息體 payload 三部分構成。mqtt 資料報結構 固定頭存在於所有mqtt資料報中,其結構如下 bit76...

MQTT協議 MQTT協議簡介及協議原理

mqtt message queuing telemetry transport,訊息佇列遙測傳輸協議 是一種基於發布 訂閱 publish subscribe 模式的 輕量級 通訊協議,該協議構建於tcp ip協議上,由ibm在1999年發布。mqtt最大優點在於,可以以極少的 和有限的頻寬,為連...