MQTT 协议兼容说明

最近更新时间:2025-08-22 17:48:52

我的收藏
本文介绍消息队列 MQTT 版对 MQTT 协议的兼容性情况,以及不同协议版本的功能差异。

协议兼容说明

消息队列 MQTT 版(TDMQ for MQTT,简称 TDMQ MQTT 版)全面兼容了标准的 MQTT 3.1MQTT 3.1.1MQTT 5.0 协议,兼容开源社区 Java、C、C++、Golang、Python、.NET、Rust 等多语言客户端接入。
对于最新的 5.0 协议,除了以下特性暂未兼容外,其余的标准协议内容均已支持:
暂不支持 AUTH Packet:MQTT 5.0 新增的控制报文(Packet Type=0x10),用于实现​​多轮认证协商。但是对于复杂认证场景,TDMQ MQTT 版额外支持了标准协议外的认证方式(如一机一证等),详见认证概述
暂不支持指定 Will Delay Interval:CONNECT Packet 中 Will Properties 中的属性之一,用来定义设备异常离线后​​延迟发送遗嘱消息的时间​​(秒)。当前暂未支持,如果客户端传入当前值后,服务端无法识别,默认均为 0。
暂不支持 Server Redirection:服务端在 CONNACK Packet 中返回的备用服务器地址。作为商业化产品,TDMQ MQTT 版会对外提供稳定的SLA保障,在服务端故障时,底层资源会自动切换,客户端的接入点不会改变,因此客户端无需感知备用服务器地址的存在。
对于暂未支持的部分,TDMQ MQTT 将尽快予以支持,您可以关注最新的功能发布公告

不同协议版本的能力差异

5.0 协议在 3.1.1 协议基础上,主要在以下功能上做了增强。详细差异可以对比 5.0 标准协议参考3.1.1 标准协议参考
报文结构内新增了 Reason Code 字段,提供更多的原因码和详细的错误报告。
扩展的会话管理(即 CONNECT 时的 Clean Start 和Session Expiry Interval 等属性 )。
多种 Packet 内新增属性(User Properties)机制,传递自定义元数据,提供更高的扩展性。
共享订阅(Shared Subscriptions):TDMQ MQTT 版在服务端做了功能兼容和增强,除了 5.0 版本的客户端外,同时支持 3.1 和 3.1.1 版本的客户端
主题别名(Topic Aliases)。
流量控制(Receive Maximum)。
增强认证(新增 AUTH Packet)。
服务器断开(Server Disconnect)时可以指示原因和重连地址。
因此,您可以尽快升级客户端 SDK 到 MQTT 5.0 协议版本,享受更多功能。