Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The MQTT broker currently supports the following MQTT features and control packets.
| Feature or control packet | MQTT v3.1.1 | MQTT v5 |
|---|---|---|
| CONNECT Keep-Alive | Supported | Supported |
| CONNECT Will Messages | Supported | Supported |
| CONNECT Will Messages Delay | N/A | Supported |
| CONNECT Will Messages Expiry Interval | N/A | Supported |
| CONNECT Will Messages User Properties | N/A | Supported |
| CONNECT Clean Start | Supported | Supported |
| CONNECT Persistent session | Supported | Supported |
| CONNECT Session Expiry Interval | N/A | Supported |
| CONNECT Client Receive Maximum | N/A | Supported |
| CONNECT Client Maximum Packet Size | N/A | Not Supported |
| CONNECT Topic Alias Maximum | N/A | Not Supported |
| CONNECT Request Response Information | N/A | Not Supported |
| CONNECT User Properties | N/A | Supported |
| CONNECT Authentication Data | N/A | Supported |
| CONNECT Authentication Method | N/A | Supported |
| CONNECT Server Generated Client ID | N/A | Supported |
| CONNACK Session Present | Supported | Supported |
| CONNACK Server Maximum Packet Size1 | N/A | Supported |
| AUTH | N/A | Supported |
| PUBLISH QoS0 Delivery | Supported | Supported |
| PUBLISH QoS1 Delivery | Supported | Supported |
| PUBLISH QoS2 Delivery | Not Supported | Not Supported |
| PUBLISH QoS1 Offline messages for persistent sessions | Supported | Supported |
| PUBLISH QoS1 Flow control2 | N/A | Supported |
| PUBLISH Retain flag | Supported | Supported |
| PUBLISH Correlation Data | N/A | Supported |
| PUBLISH Response Topic | N/A | Supported |
| PUBLISH Payload Format Indicator | N/A | Supported |
| PUBLISH Message Expiry Interval | N/A | Supported |
| PUBLISH Topic Alias | N/A | Not Supported |
| PUBLISH User Properties | N/A | Supported |
| SUBSCRIBE | Supported | Supported |
| SUBSCRIBE Retain as Published | N/A | Supported |
| SUBSCRIBE Retain Handling | N/A | Supported |
| SUBSCRIBE Wildcards | Supported | Supported |
| SUBSCRIBE No Local | N/A | Supported |
| UNSUBSCRIBE | Supported | Supported |
| SUBSCRIBE Subscription Identifiers | N/A | Not Supported |
| SUBSCRIBE Shared Subscriptions | Supported | Supported |
| PINGREQ | Supported | Supported |
| DISCONNECT | Supported | Supported |
| DISCONNECT Session Expiry Interval | N/A | Supported |
1 The broker sets the maximum allowed incoming packet size based on the memory profile.
2 The broker sends out as many publishes as possible without waiting up to the client's Receive Maximum.
Broker limits
The following limits aren't part of the MQTT specification. They describe how the MQTT broker allocates resources, and they're useful when you plan a deployment or troubleshoot client behavior.
Offline messages for persistent sessions
When a client with a persistent session disconnects, the broker queues QoS 1 messages and delivers them when the client reconnects. The broker drops QoS 0 messages for offline sessions instead of queuing them.
The MQTT specification doesn't require a broker to queue QoS 0 messages for offline clients, so this behavior is a design choice rather than a gap. If you need delivery across a disconnection, subscribe at QoS 1.
$SYS topics
The broker accepts subscriptions to $SYS topics, but it doesn't publish any $SYS messages. A subscription to a $SYS topic filter succeeds and then never receives a message.
$SYS topics aren't part of the MQTT specification. They're a convention that some brokers use to publish server metrics and status. To monitor the MQTT broker, use the metrics and logs that it emits instead. For more information, see Deployment planning - Diagnostics.
Maximum QoS
The broker supports QoS 0 and QoS 1. It advertises Maximum QoS as 1 to MQTT v5 clients in the CONNACK packet, and it rejects any PUBLISH packet that uses QoS 2. This limit isn't configurable.
Maximum packet size
The memory profile that you choose at deployment sets an upper bound on the largest packet the broker accepts:
| Memory profile | Maximum packet size |
|---|---|
| Tiny | 4 MB |
| Low | 16 MB |
| Medium (default) | 64 MB |
| High | 256 MB |
If you also set the maxPacketSizeBytes client setting, the broker uses the smaller of the two values, so you can't raise the maximum packet size above the memory profile bound. For more information, see Deployment planning - Advanced MQTT options.
The broker advertises the resulting value as the Maximum Packet Size property in the CONNACK packet. If a client sends a larger packet, the broker disconnects it with the Packet too large reason code.
This limit applies to packets that the broker receives. The broker doesn't honor the Maximum Packet Size property that a client sends in its CONNECT packet, so a client can receive packets that are larger than the size it advertises.
Receive maximum
The broker advertises a Receive Maximum of 100 in the CONNACK packet. This value is the number of QoS 1 messages that the broker accepts from a client before the client waits for acknowledgments. This limit isn't configurable.
Don't confuse this value with the maxReceiveMaximum client setting. That setting is the upper bound on the Receive Maximum value that a client can request in its CONNECT packet, and it controls the opposite direction of message flow. For more information, see Deployment planning - Advanced MQTT options.
Subscriptions per client
The broker doesn't limit the number of subscriptions that a single client can create.