消息格式描述

本文介绍物联网平台支持的MQTT 5.0新特性的消息格式描述。

功能说明

MQTT 5.0增加了两个属性描述消息的格式:有效载荷标识(Payload Format Indicator)和内容类型(Content Type)。

这两属性可以应用到发布消息(Publish)或者遗嘱消息中。

image..png

有效载荷标识(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格式,由二进制数据组成。

image..png