問答中心

          Answer Center

          下載中心

          視頻中心

          常見問題

          售后服務

          報文是什么意思?mqtt協議報文格式詳解

          時間:2022-11-05 14:26:42 

          點擊:3883 

          關鍵詞:報文,mqtt,報文格式 

          問題
          報文是什么意思?mqtt協議報文格式詳解

          回答
          報文是網絡中交換和傳輸的數據單元,也是網絡傳輸的單元。報文包含了將要發送的完整的數據信息,其長短不需一致。報文在傳輸過程中會不斷地封裝成分組、包、幀來傳輸,封裝的方式就是添加一些控制信息組成的首部,那就是報文頭。
           
          mqtt協議報文結構
           
          固件報頭Fixed header
           
          最多一次(0), 發出去了就不管了
           
          至少一次(1),發出必須要等接收方回復ack,沒有回復,那么就找時機重發,接收方需要處理去重
           
          準確一次(2),保證只發一次,需要持久化,重復消息自動去重,并且只有當接收方把消息投遞出去,才算完成
           
          控制報文的類型 Control Packet type,14種有效類型: [connect, publish, subscribe,.....]
           
          第一個1個字節前4位,
           
          標志Flags,
           
          第一個1個字節后4位,
           
          DUP 控制報文是否為重復報文,只有PUBLISH才會有DUP為1的情況,其他的報文類型都是0
           
          QoS 控制PUBLISH報文的質量等級,
           
          publish
           
          publish - pubrec
           
          publish - pubrec - pubrel - pubcomp
           
          RETAIN,
           
          每個topic只有唯一的保留消息,每個client訂閱的時候,會立刻讀取到保留消息
           
          如果訂閱者無法與broker連接,可以通過retain消息,讓訂閱者下次連接訂閱成功時一次接受所有的內容
           
          發布者定時發布retain消息,訂閱者可以根據retain消息的變化推測發布者狀態
           
          剩余長度 Remaining Length
           
          從第二個字節開始,最大長度是4個字節,低位在前,高位在后,通過每一個字節第一位[0不需要,1需要]確定是否需要繼續往后繼續計算,也就是最多可以存儲256M, 最大值16進制為:0xFF,0xFF,0xFF,0x7F
           
          可變報頭Variable header
           
          可變報文部分是根據不同的報文類型,這部分的內容也不同
           
          比如: 連接報文會有用戶名密碼標識,遺囑標識,是否清理會話標識等,發布報文會有topic信息
           
          報文標識符 PackageIdentifier [messageId]
           
          標識符作用:
           
          2個字節最大65535
           
          這些報文類型需要:PUBLISH(QoS > 0), PUBACK, PUBREL, PUBCOMP, SUBSCRIBE,SUBACK, UNSUSCRIBE,UNSUBACK
           
          重發使用相同的標識符
           
          確認后釋放標識符
           
          有效載荷Payload
           
          以下這些報文類型才有payload:
           
          CONNECT(用戶名密碼,遺囑消息,遺囑topic,客戶端標識),
           
          PUBLISH(可有可無,根據實際情況),
           
          SUBSCRIBE(訂閱的topic信息集合),
           
          SUBACK(按順序返回的訂閱的topic的報文質量等級集合)
           
          UNSUBSCRIBE(取消訂閱的topic信息集合)
           
          報文類型處理邏輯(接收方的處理邏輯)
           
          CONNECT 連接服務端 客戶端--服務端
           
          報文解析錯誤:
           
          如果報文解析錯誤,連接失敗
           
          如果解析的報文標識符不合法,連接失敗
           
          報文解析成功
           
          重發QoS1的未完成的消息
           
          重發QoS2的未完成的消息
           
          連接成功,保存會話信息
           
          連接成功,回會CONNACK報文給客戶端
           
          如果之前保存的會話信息,cleanSession == true,需要清空保存的session,訂閱信息,需要重發的發布QoS1報文,需要重發的發布的QoS2的報文
           
          關閉之前的保存的會話
           
          如果報文標識符不存在,連接失敗
           
          如果用戶密碼驗證失敗,連接失敗
           
          如果是會話中已經存在該連接,說明是發送重復的連接報文
           
          檢查心跳包,將已經存在的心跳包的間隔時間,更新成客戶端指定的時間
           
          如果連接報文中存在遺囑消息,需要將遺囑消息保存在本次連接的會話對象中
           
          如果本次連接的報文cleanSession == false,也就是不清理會話,如果是客戶端重連的,可能存在服務端有部分信息沒有發送出去,需要重新發送給該客戶端
           
          CONNACK 確認連接請求 服務端--客戶端
           
          客戶端確認連接成功
           
          PUBLISH 發布消息 雙向
           
          客戶端發送給服務端,是為了將報文分發到其他訂閱匹配的客戶端
           
          服務端發送給客戶端,是為了發消息給匹配訂閱的客戶端
           
          根據不同的質量等級進行不同的回復報文
           
          QoS 0 直接publish消息即可
           
          QoS 1 PUBLISH消息之后,還需要回復PUBACK給來源客戶端
           
          Qos 2 PUBLISH消息之后,還需要回復PUBREC給來源客戶端 (后續客戶端端發送PUBREL,再服務端發送PUBCOMP完成整個生命周期)
           
          如果是保留消息,需要覆蓋之前保存的保留消息
           
          PUBACK 發布確認 雙向
           
          帶著messageId回復發布方,通知發布成功
           
          PUBAREC 發布收到 雙向
           
          帶著messageId回復發布方,通知收到了發布報文
           
          PUBREL 發布釋放 雙向
           
          帶著messageId回復接收方,可以釋放報文
           
          PUBCOMP 發布完成 雙向
           
          帶著messageId回復發布方,可以發布完成了
           
          SUBSCRIBE 訂閱主題 客戶端--服務端
           
          根據訂閱的主題列表,
           
          保存訂閱信息
           
          回復SUBACK,按順序返回訂閱報文中的報文質量等級集合
           
          根據訂閱的主題,處理服務端保留信息,立即PUBLISH給客戶端
           
          SUBACK 訂閱確認 服務端-- 客戶端
           
          客戶端確認訂閱成功
           
          UNSUBSCRIBE 取消訂閱 客戶端--服務端
           
          移除掉該客戶端保存的訂閱主題
           
          回復UNSUBACK報文
           
          UNSUBACK 訂閱確認 服務端-- 客戶端
           
          客戶端確認取消訂閱成功
           
          PINGREQ 心跳請求 客戶端--服務端
           
          返回客戶端PINGRESP報文
           
          PINGRESP 心跳響應 服務端--客戶端
           
          收到報文確認服務端正常

           

          免責聲明:本網站部分文章、圖片等信息來源于網絡,版權歸原作者平臺所有,僅用于學術分享,如不慎侵犯了你的權益,請聯系我們,我們將做刪除處理!


          產品系列

          工業智能網關
          物通博聯·WG系列工業智能網關是一款支持采集各種PLC,儀器儀表,水環保,電力設備,CNC等各種工業設備數據,具有協議解析,邊緣計算的高可靠性工業智能網關,是構建工業互聯網系統的核心邊緣節點。
          了解更多
          工業數采終端
          物通博聯·WD系列工業數采終端,主要實現對現場工業設備的數字量DI、DO,模擬量AI,AO的采集和控制,實現LORA本地組網和4G數據上云的功能,從而實現對現場傳感器、執行機構、指示燈等數采和控制。
          LoRa終端
          LoRa網關
          DTU
          RTU
          4G無線IO
          WIFI無線IO
          了解更多
          工業聯網終端
          物通博聯·工業聯系終端包含WR系列工業無線路由、WC系列網段隔離器和WS系列工業交換機。 支持5G/4G/WIFI/以太網等方式聯網接入,支持VPN組網,為現場設備提供低時延、高可靠、高安全的網絡接入,從而實現大規模設備組網應用。
          了解更多
          設備遠程維護系統
          物通博聯·設備遠程維護系統是一套實現對分散式設備遠程維護和運營的軟硬件系統,為工程師搭建一條通往遠端設備現場的安全數據通道,實現對現場設備(PLC)的遠程配置、遠程診斷、遠程調試和遠程升級程序。
          設備遠程配置
          設備遠程調試
          遠程上下載程序
          設備遠程維護
          設備遠程監控
          設備預防式維護
          了解更多
          工業設備數據平臺
          物通博聯·工業設備數據平臺是一款高并發的工業設備遠程管理和工業設備數據可視化的云平臺,廣泛應用于智能工廠數采中臺、遠程設備運營管理平臺、各行業的物聯網數據云平臺等。
          海量設備接入
          高效數據采集
          豐富組態控件
          強大的數據分析
          預防式設備維護
          豐富的API接口
          了解更多
          設備遠程接入平臺
          物通博聯·設備遠程接入云平臺是一款針對分布式設備數據實時監測的快速接入平臺,采用SAAS云服務方式為工業現場的各種工業設備的數據互通互聯建立實時在線的數據通道。
          分布式項目監控
          設備互通互聯
          無需公網IP
          快速低成本接入
          實時在線通道
          點對點通信
          了解更多

          物通博聯,助您開啟工業數字化和智能化之路

          申請樣機
          在線
          咨詢
          免費
          試用
          久久久精品国产sm调教网站| 国产精品偷窥熟女精品视频| 欧美成人精品欧美一级乱黄一区二区精品在线| 国产三级精品三级在线观看专1 | 久久精品国产亚洲一区二区| 国产精品一区二区三区免费| 亚洲精品456播放| 久久亚洲精品国产精品| 91精品啪在线观看国产电影| 亚洲精品高清在线| 国产精品福利自产拍在线观看| 国产精品va在线观看无码| 亚洲午夜精品一级在线播放放| 久久精品九九亚洲精品| 国产成人精品一区在线| 最新国产乱人伦偷精品免费网站| 3D动漫精品一区二区三区| 精品欧美一区二区在线观看| 亚洲AV成人精品网站在线播放| 91国内揄拍国内精品对白不卡 | 国内精品久久久久影院优| 91精品国产福利在线观看麻豆 | 国产92成人精品视频免费| 精品久久久久中文字| 人妻精品久久无码专区精东影业| 91精品国产自产在线老师啪| 婷婷在线视频观看| 欧美日韩精品在线| 欧美亚洲高清日韩成人| 日本欧美韩国日本精品| 一本之道av不卡精品| 久久精品国产亚洲沈樵| 中文精品久久久久人妻不卡| 日韩麻豆国产精品欧美| 老司机午夜精品视频在线观看免费| 久久精品国产99国产电影网| 中国又粗又大又爽的毛片| 亚洲精品天天影视综合网| **性色生活毛片| 国产一区二区三区在线观看精品 | 精品久久久久久国产91|