新聞中心
這篇文章主要介紹“MQTT 5.0屬性與載荷有哪些”,在日常操作中,相信很多人在MQTT 5.0屬性與載荷有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MQTT 5.0屬性與載荷有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
MQTT 5.0 協(xié)議相比 MQTT 3.1.1 增加了很多屬性,這些屬性分布于報文的可變頭部 ( Variable Header ) 和有效載荷 ( Payload ) 中。
MQTT 5.0 協(xié)議中攜帶有效載荷的報文有 CONNECT 報文,PUBLISH 報文,SUBSCRIBE 報文,SUBACK 報文,UNSUBSCRIBE 報文和 UNSUBACK 報文。
PUBLISH 報文的有效載荷負(fù)責(zé)存儲消息內(nèi)容,與 MQTT 3.1.1 協(xié)議相同。
CONNECT 報文
CONNECT 報文的可變頭部新增的屬性有:
在 CONNECT 報文的 Payload 中,部分字段發(fā)生了變化,遺囑消息(Will Message)變成了遺囑載荷(Will Payload)。Payload 中新增了遺囑屬性(Will Properties),用于定義遺囑消息的行為。
新增的遺囑屬性有:
CONNACK 報文
CONNACK 報文沒有 Payload,在可變頭部中包含的屬性有:
PUBLISH 報文
PUBLISH 報文可變頭部的屬性有:
PUBACK, PUBREC, PUBREL, PUBCOMP, SUBACK, UNSUBACK 報文
PUBACK, PUBREC, PUBREL, PUBCOMP, SUBACK, UNSUBACK 都具備以下三個屬性:
SUBSCRIBE 報文
SUBSCRIBE 報文的屬性同樣存在可變頭部中。
MQTT 5.0 中 SUBSCRIBE 報文中的 Payload 包含了訂閱選項(Subscription Options)。
訂閱選項(Subscription Options)的第 0 位和第 1 位表示 QoS 大值。該字段給出了服務(wù)器可以發(fā)送給客戶端應(yīng)用消息的大 QoS 等級。如果 QoS 值為 3,就會觸發(fā)協(xié)議錯誤。
訂閱選項第 2 位表示非本地選項(No Local)。如果值為 1,應(yīng)用消息就不會發(fā)布給訂閱發(fā)布主題的發(fā)布者本身,如果在共享訂閱中將該選項設(shè)置為 1 的話,就會觸發(fā)協(xié)議錯誤。
訂閱選項的第 3 位表示保留為已發(fā)布(Retain As Published)。若該值為 1,服務(wù)器須將轉(zhuǎn)發(fā)消息的 RETAIN flag 設(shè)為與接收到的 PUBLISH 報文的 RETAIN flag 一致。若該值為 0,不管接收到的 PUBLISH 報文中的 RETAIN flag 是何值,服務(wù)器都需將轉(zhuǎn)發(fā)消息的 RETAIN flag 置為 0。
訂閱選項的第 4 第 5 位表示保留處理 (Retain Handling)。該選項是用來控制保留消息 (retained message) 的發(fā)送。當(dāng)保留處理的值為 0 時,服務(wù)器須將保留消息轉(zhuǎn)發(fā)到與訂閱匹配的主題上去。當(dāng)該值為 1 時,如果訂閱已經(jīng)不存在了,那么服務(wù)器需要將保留消息轉(zhuǎn)發(fā)給與訂閱匹配的主題上,但是如果訂閱存在,服務(wù)器就無法再轉(zhuǎn)發(fā)保留消息。當(dāng)該值為 2 時,服務(wù)器不轉(zhuǎn)發(fā)保留消息。
訂閱選項的第 6 第 7 位是預(yù)留給未來使用的。如果有效載荷的任何一個預(yù)留位非零,那么服務(wù)器就會將該報文視為格式錯誤的報文。
UNSUBSCRIBE 報文
UNSUBSCRIBE 報文僅有兩個屬性:屬性長度和用戶屬性。
UNSUBSCRIBE 報文的載荷相比 SUBSCRIBE 的載荷要簡單很多,它僅僅只是包含主題過濾器的列表,并不包含各種各樣的訂閱選項。
服務(wù)器就會將該報文視為格式錯誤的報文。
DISCONNECT 報文(新增)
DISCONNECT 報文是 MQTT 5.0 新增的報文,它的引入意味著 mqtt broker 擁有了主動斷開連接的能力。DISCONNECT 報文所具備的屬性有:
到此,關(guān)于“MQTT 5.0屬性與載荷有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
網(wǎng)站名稱:MQTT5.0屬性與載荷有哪些-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://www.dlmjj.cn/article/deheed.html