全部產品
Search
文件中心

IoT Platform:使用者屬性

更新時間:Jun 30, 2024

本文為您介紹MQTT 5.0的新特性使用者屬性。

背景資訊

MQTT 5.0報文中引入了屬效能力,允許在控制報文中添加額外的索引值對。這項屬性在實現MQTT 5.0的許多特性時非常重要,例如會話到期、訊息到期和請求響應模式都是基於使用者屬性實現。使用者屬性是屬性的一種,允許使用者定義完整的UTF8字串索引值對,類似於HTTP標題。除了心跳報文,MQTT 5.0控制報文都支援設定使用者屬性,裝置/應用程式可以通過使用者屬性傳遞額外的自訂資訊。使用者屬性訊息樣本如下。

Topic:  “sys/${productkey}/${devicename}/update”
Payload:                     "hello world!"
UserProperty: "key1_timestamp:value1_12345"
UserProperty:       "key2_msgid:value2_123"

使用限制

  • 最多支援20個使用者屬性。

  • 物聯網平台只處理Connect/Publish報文中的使用者屬性。

應用情境

訊息內容格式

通過使用者屬性描述Payload,實現同一Topic支援不同類型的Payload,方便管理不同批次的裝置。

image..png

訊息分包處理

MQTT協議適用小包情境,MQTT 5.0支援裝置與平台協商最大的包長度,如果最大的包長度不能滿足業務需求,可以利用使用者屬性可以實現分包處理。在下圖中,裝置端發送訊息時進行分包,將樣本訊息分拆成訊息A和訊息B。應用端通過擷取訊息中的使用者屬性,識別分包標識,並完成訊息彙總處理。更多資訊,請參見什麼是服務端訂閱

image..png

訊息流程轉

通過使用者屬性定義訊息的流轉類型及目的地,在規則引擎中識別屬性並執行訊息流程轉。在下圖中,裝置端上報不同類型的訊息,通過UserProperty定義訊息的流轉目的地。更多資訊,請參見雲產品流轉概述

image..png