文档

用户属性

更新时间:

本文为您介绍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
  • 本页导读 (1)
文档反馈