溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MQTT 5.0屬性與載荷有哪些

發(fā)布時間:2021-12-07 09:52:23 來源:億速云 閱讀:112 作者:iii 欄目:互聯網科技

這篇文章主要介紹“MQTT 5.0屬性與載荷有哪些”,在日常操作中,相信很多人在MQTT 5.0屬性與載荷有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MQTT 5.0屬性與載荷有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

MQTT 5.0 協議相比 MQTT 3.1.1 增加了很多屬性,這些屬性分布于報文的可變頭部 ( Variable Header ) 和有效載荷 ( Payload ) 中。

MQTT 5.0 協議中攜帶有效載荷的報文有 CONNECT 報文,PUBLISH 報文,SUBSCRIBE 報文,SUBACK 報文,UNSUBSCRIBE 報文和 UNSUBACK 報文。

PUBLISH 報文的有效載荷負責存儲消息內容,與 MQTT 3.1.1 協議相同。

CONNECT 報文

CONNECT 報文的可變頭部新增的屬性有:

MQTT 5.0屬性與載荷有哪些

在 CONNECT 報文的 Payload 中,部分字段發(fā)生了變化,遺囑消息(Will Message)變成了遺囑載荷(Will Payload)。Payload 中新增了遺囑屬性(Will Properties),用于定義遺囑消息的行為。

新增的遺囑屬性有:

MQTT 5.0屬性與載荷有哪些

CONNACK 報文

CONNACK 報文沒有 Payload,在可變頭部中包含的屬性有:

MQTT 5.0屬性與載荷有哪些

PUBLISH 報文

PUBLISH 報文可變頭部的屬性有:

MQTT 5.0屬性與載荷有哪些

PUBACK, PUBREC, PUBREL, PUBCOMP, SUBACK, UNSUBACK 報文

PUBACK, PUBREC, PUBREL, PUBCOMP, SUBACK, UNSUBACK 都具備以下三個屬性:
MQTT 5.0屬性與載荷有哪些

SUBSCRIBE 報文

SUBSCRIBE 報文的屬性同樣存在可變頭部中。

MQTT 5.0屬性與載荷有哪些

MQTT 5.0 中 SUBSCRIBE 報文中的 Payload 包含了訂閱選項(Subscription Options)。

MQTT 5.0屬性與載荷有哪些

訂閱選項(Subscription Options)的第 0 位和第 1 位表示 QoS 最大值。該字段給出了服務器可以發(fā)送給客戶端應用消息的最大 QoS 等級。如果 QoS 值為 3,就會觸發(fā)協議錯誤。

訂閱選項第 2 位表示非本地選項(No Local)。如果值為 1,應用消息就不會發(fā)布給訂閱發(fā)布主題的發(fā)布者本身,如果在共享訂閱中將該選項設置為 1 的話,就會觸發(fā)協議錯誤。

訂閱選項的第 3 位表示保留為已發(fā)布(Retain As Published)。若該值為 1,服務器須將轉發(fā)消息的 RETAIN flag 設為與接收到的 PUBLISH 報文的 RETAIN flag 一致。若該值為 0,不管接收到的 PUBLISH 報文中的 RETAIN flag 是何值,服務器都需將轉發(fā)消息的 RETAIN flag 置為 0。

訂閱選項的第 4 第 5 位表示保留處理 (Retain Handling)。該選項是用來控制保留消息 (retained message) 的發(fā)送。當保留處理的值為 0 時,服務器須將保留消息轉發(fā)到與訂閱匹配的主題上去。當該值為 1 時,如果訂閱已經不存在了,那么服務器需要將保留消息轉發(fā)給與訂閱匹配的主題上,但是如果訂閱存在,服務器就無法再轉發(fā)保留消息。當該值為 2 時,服務器不轉發(fā)保留消息。

訂閱選項的第 6 第 7 位是預留給未來使用的。如果有效載荷的任何一個預留位非零,那么服務器就會將該報文視為格式錯誤的報文。

UNSUBSCRIBE 報文

UNSUBSCRIBE 報文僅有兩個屬性:屬性長度和用戶屬性。

UNSUBSCRIBE 報文的載荷相比 SUBSCRIBE 的載荷要簡單很多,它僅僅只是包含主題過濾器的列表,并不包含各種各樣的訂閱選項。

服務器就會將該報文視為格式錯誤的報文。

DISCONNECT 報文(新增)

DISCONNECT 報文是 MQTT 5.0 新增的報文,它的引入意味著 mqtt broker 擁有了主動斷開連接的能力。DISCONNECT 報文所具備的屬性有:

MQTT 5.0屬性與載荷有哪些

到此,關于“MQTT 5.0屬性與載荷有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI