本文介绍物联网平台支持的MQTT 5.0新特性的消息格式描述。
功能说明
MQTT 5.0增加了两个属性描述消息的格式:有效载荷标识(Payload Format Indicator)和内容类型(Content Type)。
这两属性可以应用到发布消息(Publish)或者遗嘱消息中。
有效载荷标识(Payload Format Indicator)
有效载荷标识由一个字节表示,取值范围为:
1:表示负载(payload)格式为UTF-8字符串编码。
0:表示负载(payload)格式为未知类型编码,例如:二进制编码。
内容类型(Content Type)
内容类型由一个字符串组成,可以填充成MIME类型(例如:text/plain表示文本内容),也可以填充成任意的字符串内容。
重要
消息转发只支持用户属性的内容提取,如果用户想在消息转发中支持不同类型的payload,也可以通过设置用户属性实现。
应用场景
消息格式描述特性提高了跨系统的互操作性和透明度,支持:
可变负载的使用。
中间节点在不解析payload的情况下,实现消息的流转处理。
可变负载场景
一般情况下,MQTT协议通信中一个Topic对应一个payload格式,随着设备的迭代演进,不同批次的设备Topic对应的payload格式可能存在不同。此场景下,合适使用消息格式描述特性。
设备1:发送的消息内容为JSON格式,由字符串组成。
设备2:发送的消息内容为ProtoBuf格式,由二进制数据组成。