MQTT 5.0概述
MQTT(Message Queuing Telemetry Transport)5.0是指MQTT 5.0協議,它在原有MQTT 3.1.1版本的基礎上引入了一些新特性,例如,用戶屬性、主題別名、會話過期等,并為原有3.1.1特性做了功能改進,提高了協議的靈活性、可靠性和功能性。本文將為您介紹MQTT 5.0的主要新特性。
背景信息
目前,云消息隊列 MQTT 版已支持MQTT3.1.1、5.0版本協議,具體的協議請參見MQTT 5.0、MQTT 3.1.1。
使用限制
云消息隊列 MQTT 版暫不支持共享訂閱、遺囑消息、保留消息功能。
目前專業版、鉑金版、Serverless實例可以提供5.0協議功能,存量實例如需使用5.0協議功能需要提交工單申請升級實例版本。
服務端允許設置的最大keepalive為8分鐘,超過8分鐘的按照8分鐘設置。
服務端支持的最大報文大小為128 KB字節,發送報文時,消息體大小不超過64 KB。
說明服務端接收到數據包后不會檢查大小,直接推送到服務端。如果您需要服務端檢查數據包大小,并在數據包超過最大值時攔截該報文,請聯系云消息隊列 MQTT 版技術支持,釘釘群號:35228338。
訂閱標識符的取值范圍為[1, 268435455],超出此范圍將會導致訂閱失敗并收到協議錯誤的錯誤碼。
客戶端允許設置的Receive Maximum最大值為65535,超過該數值則按照65535設置。
如果您需要使用MQTT 5.0相關特性,請請聯系云消息隊列 MQTT 版技術支持,釘釘群號:35228338。
具體特性的使用限制請參見各特性詳情頁面。
MQTT 5.0新特性
特性 | 說明 |
MQTT 5.0報文中引入了用戶屬性能力,允許在控制報文中添加額外的鍵值對,允許用戶定義完整的UTF8字符串鍵值對。除了心跳報文,MQTT 5.0控制報文都支持設置用戶屬性,設備/應用程序可以通過用戶屬性傳遞額外的自定義信息。 | |
使用蜂窩網絡接入物聯網平臺的物聯網設備,大部分對流量和功耗非常敏感。在這種場景下,更小的數據包傳輸可以降低電量和流量的消耗。主題別名可以將字符串主題替換為數字,從而降低消息的數據包長度。 | |
在MQTT 5.0中,把 | |
當消息過期間隔被設置并且消息已過期時,存儲的消息將被刪除,不會被推送。這在物聯網弱網場景下很有用,例如,您不希望過期的指令下發到設備,造成設備行為異常。 | |
客戶端訂閱某個主題時,可以指定一些參數和選項(例如QoS),可以有效地管理和優化消息傳遞過程,滿足不同應用場景的需求。 | |
MQTT 5.0 提供了一種新的請求/響應模式,以支持一對一的通信。在物聯網設備的實際業務場景下,可使用請求與響應模式,解決需要回復的場景需求。 | |
消息增加Payload格式說明,保證發布者和訂閱者對數據格式的一致理解,幫助訂閱者正確處理數據。 | |
支持功能參數協商、增強錯誤碼、服務端主動斷開等特性,提高問題排查效率。 |