你真正了解物聯網協議嗎,物聯老鬼帶你剖析物聯網協議MQTT03

物聯老鬼 發佈 2020-01-02T05:18:17+00:00

說明:由於MQTT協議涉及了內容較多,為了更好的便於各位粉絲閱讀,物聯老鬼將會陸續更新這是物聯老鬼在【今日頭條】寫的第101篇文章在前述文章《你真正了解物聯網協議嗎,物聯老鬼帶你剖析物聯網協議MQTT02》中,物聯老鬼在文末對於MQTT協議的報文中固定報頭概要情況進行了簡單介紹。

導讀:在前述文章《你真正了解物聯網協議嗎,物聯老鬼帶你剖析物聯網協議MQTT02》中,物聯老鬼已經對MQTT協議的Fixed header , 即固定報頭的基本情況進行了了解,本篇文章將對Variable header 可變報頭和有效載荷Payload進行概要介紹



作者:物聯老鬼

原創版權聲明:本文為今日頭條自媒體-物聯老鬼的原創文章,遵循CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結及本聲明。

說明:由於MQTT協議涉及了內容較多,為了更好的便於各位粉絲閱讀,物聯老鬼將會陸續更新


這是物聯老鬼在【今日頭條】寫的第101篇文章

在前述文章《你真正了解物聯網協議嗎,物聯老鬼帶你剖析物聯網協議MQTT02》中,物聯老鬼在文末對於MQTT協議的報文中固定報頭概要情況進行了簡單介紹。我們知道MQTT協議中第二、三部分就是Variable header 可變報頭和有效載荷Payload。

Variable header 可變報頭

可變報頭根據報文類型的不同,包含一個梁子傑的報文標識符欄位.這些報文類型包括PUBLISH、PUBACK、PUBREC 、PUBREL、 PUBCOMP 、SUBSCRIBE 、SUBACK 、UNSUBSCRIBE、 UNSUBACK,如下圖所示:

報文標識符主要包含兩個字節主要結構如下:

其中針對報文類型為SUBSCRIBE,UNSUBSCRIBE和PUBLISH必須包含一個非零的16 位報文標識符。客戶端每次發送一個新的這些類型的報文 時都必須分配一個當前未使用的報文標識符。如果一個客戶端要重發這個特 殊的控制報文,在隨後重發那個報文時,它必須使用相同的標識符。當客戶端處理完這個報 文對應的確認後,這個報文標識符就釋放可重用。另外PUBACK, PUBREC, PUBREL報文必須包含與最初發送的PUBLISH報文相同的報文標識符。類似地,SUBACK和UNSUBACK必須包含在對應的SUBSCRIBE和 UNSUBSCRIBE報文中使用的報文標識符。如果客戶端和服務端彼此獨立地分配報文標識符。那麼,客戶端服務端組合使用相同的報文標識 符可以實現並發的消息交換。

有效載荷Payload

MQTT控制報文在報文的最後部分包含一個有效載荷。同樣的有效載荷只針對默寫報文類型才有需要,詳細情況如下:

至此,物聯老鬼已經將MQTT協議的三個部分進行概要性的介紹,相信各位都有了一個基本的認識,考慮到篇幅問題,物聯老鬼將在後續文章中繼續更新關於MQTT報文中詳細的使用介紹


物聯老鬼-致力於關注智能製造、工業4.0轉型升級的知識和經驗的傳播,致力於幫助那些期望進行數字化轉型或從事數字化工作的人,提供一個專業、嚴謹、科學的新媒體平台!

關鍵字: