本文为您介绍MQTT 5.0的新特性主题别名。
背景信息
使用蜂窝网络接入物联网平台的物联网设备,大部分对流量和功耗非常敏感。例如农业场景下的温度传感器依靠电池供电,每个月的流量只有几兆字节。在这种场景下,更小的数据包传输可以降低电量和流量的消耗。主题别名可以将字符串主题替换为数字,从而降低消息的数据包长度。一个主题一般包含业务属性,长度为几十个字节,甚至超过载体的长度,但通过主题别名转换成数字后只有四个字节。
使用限制
主题别名的实现依赖主题和别名的映射关系,设备端和阿里云物联网平台都需要维护相应的映射关系。该映射关系会在初次使用别名时添加,并在连接断开时删除,因此重新连接的设备需要重新完成主题和别名的映射。
别名不能重复,Topic和别名是一一对应关系。
如果使用主题别名,请勿并发发布消息。否则,因为云端分布式的特点,可能导致并发的消息丢失。
每个设备支持的主题别名数量最多为20,消息上行或下行的数量最多为20。
使用场景
下图以温度传感器为示例,介绍主题别名的原理及使用流程。示例中消息A和消息B的Payload是一样的,消息A有主题和别名,消息B主题为空用别名替换。主题/sys/product_name/device_001/farmland_1234/sensors/temperature
长度超过60字节,使用主题别名节省了这部分的带宽。
文档内容是否对您有帮助?