MQTT通訊知識

2021-09-27 09:41:10 字數 1472 閱讀 5053

mqtt

mqtt是乙個客戶端服務端架構的輕量級發布/訂閱模式的訊息傳輸協議。提供有序,可靠的,雙向位元組流傳輸。

ibm開發的即時通訊協議;

客戶端

發布應用訊息給其它相關的客戶端

訂閱以請求接受相關的應用訊息

取消訂閱以移除接受應用訊息的請求。

從服務端斷開連線

服務端(服務端不是資料的終點,它只是資料的中轉站

接受來自客戶端的網路連線。

接受客戶端發布的應用訊息。

處理客戶端的訂閱和取消訂閱請求。

**應用訊息給符合條件的已訂閱客戶端。

mqtt的協議角色

發布者(客戶端)   //訊息發布者可以同時是訂閱者

**器(伺服器)

訂閱者(客戶端)

mqtt的協議訊息(負載payload)

mqtt中的訊息可理解為發布者和訂閱者交換的內容(負載),這些訊息包含具體的內容,可以被訂閱者使用

mqtt協議主題

mqtt中的主題可理解為相同型別或相似型別的訊息集合

mqtt構建底層網路傳輸

它將建立客戶端到伺服器的連線,提供兩者之間的乙個有序的、無損的、基於位元組流的雙向傳輸。

當應用資料通過mqtt網路傳送時,mqtt會把與之相關的服務質量(qos)和主題名(topic)相關連。

mqtt協議中的訂閱,主題,會話

一、訂閱(subscription)

訂閱包含主題篩選器(topic filter)和最大服務質量(qos)。訂閱會與乙個會話(session)關聯。乙個會話可以包含多個訂閱。每乙個會話中的每個訂閱都有乙個不同的主題篩選器。

二、會話(session)

每個客戶端與伺服器建立連線後就是乙個會話,客戶端和伺服器之間有狀態互動。會話存在於乙個網路之間,也可能在客戶端和伺服器之間跨越多個連續的網路連線。

三、主題名(topic name)

連線到乙個應用程式訊息的標籤,該標籤與伺服器的訂閱相匹配。伺服器會將訊息傳送給訂閱所匹配標籤的每個客戶端。

四、主題篩選器(topic filter)

乙個對主題名萬用字元篩選器,在訂閱表示式中使用,表示訂閱所匹配到的多個主題。

五、負載(payload)

訊息訂閱者所具體接收的內容

mqtt協議資料報結構

在mqtt協議中,乙個mqtt資料報由:固定頭(fixed header)、可變頭(variable header)、訊息體(payload)三部分構成。mqtt資料報結構如下:

MQTT的知識點

先組裝publish協議的頭,裡面寫好payload的長度,通過tcp發出去,然後一點一點發payload。如果拿不到payload總長度,這個事情就難辦。因為你發了乙個publish協議報,服務端讀到head裡面的payload的長度之後,就會一直讀,讀到需要的長度,才算這個publish結束。所...

物聯網開發之MQTT通訊

mqtt協議 mqtt協議簡介 mqtt message queuing telemetry transport,訊息佇列遙測傳輸協議 是乙個客戶端服務端架構的發布 訂閱模式的 輕量級 訊息傳輸協議。mqtt控制報文由三部分組成,依次為 固定報頭 fixed header 可變報頭 variable...

esp8266用mqtt協議通訊

之前用esp8266做的東西是通過tcp連線來和伺服器端通訊的,伺服器端需要自己管理所有的連線,每個連線要做心跳包,還要考慮通訊訊息的可靠性。偶然看到了mqtt協議,發現可以拿來用。mqtt協議介紹 esp8266可以用的mqtt客戶端 注意我這邊用的是esp12e模組,16塊左右,所以有16引腳,...