This document introduces the compatibility of TDMQ for MQTT with the MQTT protocol, as well as differences in supported features across protocol versions.
Protocol Compatibility Notes
TDMQ for MQTT is fully compatible with the standard MQTT 3.1, MQTT 3.1.1, and MQTT 5.0 protocols, supporting multi-language client access such as Java, C, C++, Golang, Python, .NET, and Rust from the open-source community. For the latest 5.0 protocol, except the following features currently not supported, the rest of the standard protocol content is fully compatible:
AUTH Packet not currently supported: A control packet (Packet Type=0x10) newly added in MQTT 5.0 for multi-stage authentication exchange. For complex authentication scenarios, TDMQ for MQTT additionally supports non-standard authentication methods (such as one-certificate-per-device and so on), refer to Authentication Methods Overview for details. Will Delay Interval not currently supported: One of the attributes in the CONNECT Packet's Will Properties, used to define the time (in seconds) for delayed sending of the will message after a device is unexpectedly offline. Currently not supported. If the client imports the current value, the server cannot recognize it and defaults to 0. Server Redirection not currently supported: The secondary server address returned by the server in the CONNACK Packet. As a commercial product, TDMQ for MQTT provides stability secured by SLA. In case of server failure, the underlying cloud resources will automatically switch without changing the client's access point, so the client does not need to perceive the existence of a secondary server address. For the features not currently supported, TDMQ for MQTT will provide support as soon as possible. You can follow the latest Release Notes. Capability Differences in Different Protocol Versions
Added the Reason Code field to the message structure, offering more cause codes and detailed error reporting.
Enhanced session management (such as Clean Start and Session Expiry Interval during CONNECT).
Multiple new attributes (User Properties) mechanism in Packet, transmit custom metadata, offer higher scalability.
Shared Subscriptions (Shared Subscriptions): TDMQ for MQTT provides compatibility and enhancement at the server side. In addition to clients using the 5.0 protocol, it also supports clients using versions 3.1 and 3.1.1. Topic Aliases.
Traffic control (Receive Maximum).
Enhanced authentication (newly-added AUTH Packet).
Server Disconnect indicates the reason and reconnection address.
Therefore, you can upgrade the client SDK to the MQTT 5.0 protocol version as soon as possible to enjoy more features.