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, all standard protocol features are supported except the following:
AUTH Packet: a control packet (Packet Type = 0x10) newly added in MQTT 5.0 for multi-round authentication negotiation. For complex authentication scenarios, TDMQ for MQTT additionally supports non-standard authentication methods (such as one-device-one-certificate). For details, refer to Authentication Method Overview. Will Delay Interval: one of the Will Properties of the CONNECT packet, used to define the delay in seconds before sending the Will message if a device goes offline unexpectedly. Since the property is not supported, the value passed by the client cannot be recognized by the server and defaults to 0. Server Redirection: the backup server address returned by the server in the CONNACK packet. As a commercial product, TDMQ for MQTT provides stable service availability (SLA). In case of a server failure, the underlying resources automatically switch without changing the client's access point, so the client does not need to be aware of the backup server address. For the features not yet supported, TDMQ for MQTT will provide support as soon as possible. You can follow the latest Release Notes. Capability Differences Across Different Protocol Versions
Included the "Reason Code" field in the packet structure, offering more reason codes and detailed error reports.
Enhanced session management, that is, properties such as Clean Start and Session Expiry Interval for connections.
A mechanism for adding User Properties to multiple packet types, enabling custom metadata transmission and offering higher scalability.
Shared Subscriptions: TDMQ for MQTT provides compatibility and enhancement at the server side. It supports clients using the 5.0, 3.1, or 3.1.1 protocols. Topic Aliases.
Traffic control (Receive Maximum).
Enhanced authentication by introducing AUTH packets.
Provides the reason and reconnection address when the server disconnects.
It is recommended to upgrade the client SDK to the MQTT 5.0 version as soon as possible to enjoy more features.