MQTT 5.0概述
MQTT(Message Queuing Telemetry Transport)5.0是指MQTT 5.0协议,它在原有MQTT 3.1.1版本的基础上引入了一些新特性,例如,用户属性、主题别名、会话过期等,并为原有3.1.1特性做了功能改进,提高了协议的灵活性、可靠性和功能性。本文将为您介绍MQTT 5.0的主要新特性。
背景信息
目前,云消息队列 MQTT 版已支持MQTT3.1.1、5.0版本协议,具体的协议请参见MQTT 5.0、MQTT 3.1.1。
使用限制
云消息队列 MQTT 版暂不支持共享订阅、遗嘱消息、保留消息功能。
目前专业版、铂金版、Serverless实例可以提供5.0协议功能,存量实例如需使用5.0协议功能需要提交工单申请升级实例版本。
服务端允许设置的最大keepalive为8分钟,超过8分钟的按照8分钟设置。
服务端支持的最大报文大小为128 KB字节,发送报文时,消息体大小不超过64 KB。
说明服务端接收到数据包后不会检查大小,直接推送到服务端。如果您需要服务端检查数据包大小,并在数据包超过最大值时拦截该报文,请联系云消息队列 MQTT 版技术支持,钉钉群号:35228338。
订阅标识符的取值范围为[1, 268435455],超出此范围将会导致订阅失败并收到协议错误的错误码。
客户端允许设置的Receive Maximum最大值为65535,超过该数值则按照65535设置。
如果您需要使用MQTT 5.0相关特性,请请联系云消息队列 MQTT 版技术支持,钉钉群号:35228338。
具体特性的使用限制请参见各特性详情页面。
MQTT 5.0新特性
特性 | 说明 |
MQTT 5.0报文中引入了用户属性能力,允许在控制报文中添加额外的键值对,允许用户定义完整的UTF8字符串键值对。除了心跳报文,MQTT 5.0控制报文都支持设置用户属性,设备/应用程序可以通过用户属性传递额外的自定义信息。 | |
使用蜂窝网络接入物联网平台的物联网设备,大部分对流量和功耗非常敏感。在这种场景下,更小的数据包传输可以降低电量和流量的消耗。主题别名可以将字符串主题替换为数字,从而降低消息的数据包长度。 | |
在MQTT 5.0中,把 | |
当消息过期间隔被设置并且消息已过期时,存储的消息将被删除,不会被推送。这在物联网弱网场景下很有用,例如,您不希望过期的指令下发到设备,造成设备行为异常。 | |
客户端订阅某个主题时,可以指定一些参数和选项(例如QoS),可以有效地管理和优化消息传递过程,满足不同应用场景的需求。 | |
MQTT 5.0 提供了一种新的请求/响应模式,以支持一对一的通信。在物联网设备的实际业务场景下,可使用请求与响应模式,解决需要回复的场景需求。 | |
消息增加Payload格式说明,保证发布者和订阅者对数据格式的一致理解,帮助订阅者正确处理数据。 | |
支持功能参数协商、增强错误码、服务端主动断开等特性,提高问题排查效率。 |