Learn what Felgo offers to help your business succeed. Start your free evaluation today! Felgo for Your Business

QMqtt Namespace

Contains miscellaneous identifiers used throughout the Qt MQTT module. More...

Header: #include <QMqtt>
CMake: find_package(Qt6 REQUIRED COMPONENTS Mqtt)
target_link_libraries(mytarget PRIVATE Qt6::Mqtt)
qmake: QT += mqtt
Since: Qt 5.12


enum class MessageStatus { Unknown, Published, Acknowledged, Received, Released, Completed }
enum class PayloadFormatIndicator { Unspecified, UTF8Encoded }
enum class ReasonCode { Success, SubscriptionQoSLevel0, SubscriptionQoSLevel1, SubscriptionQoSLevel2, NoMatchingSubscriber, …, WildCardSubscriptionsNotSupported }

Detailed Description

Type Documentation

[since 5.12] enum class QMqtt::MessageStatus

This enum type specifies the available states of a message. Depending on the QoS and role of the client, different message statuses are expected.

Constant Value Description
QMqtt::MessageStatus::Unknown 0 The message status is unknown.
QMqtt::MessageStatus::Published 1 The client received a message for one of its subscriptions. This applies to QoS levels 1 and 2.
QMqtt::MessageStatus::Acknowledged 2 A message has been acknowledged. This applies to QoS 1 and states that the message handling has been finished from the client side.
QMqtt::MessageStatus::Received 3 A message has been received. This applies to QoS 2.
QMqtt::MessageStatus::Released 4 A message has been released. This applies to QoS 2. For a publisher the message handling has been finished.
QMqtt::MessageStatus::Completed 5 A message has been completed. This applies to QoS 2 and states that the message handling has been finished from the client side.

This enum was introduced or modified in Qt 5.12.

[since 5.12] enum class QMqtt::PayloadFormatIndicator

The payload format provides information on the content of a message. This can help other clients to handle the message faster.

Constant Value Description
QMqtt::PayloadFormatIndicator::Unspecified 0 The format is not specified.
QMqtt::PayloadFormatIndicator::UTF8Encoded 1 The payload of the message is formatted as UTF-8 Encoded Character Data.

This enum was introduced or modified in Qt 5.12.

[since 5.12] enum class QMqtt::ReasonCode

This enum type specifies the available error codes.

Constant Value Description
QMqtt::ReasonCode::Success 0 The specified action has succeeded.
QMqtt::ReasonCode::SubscriptionQoSLevel0 0 A subscription with QoS level 0 has been created.
QMqtt::ReasonCode::SubscriptionQoSLevel1 0x01 A subscription with QoS level 1 has been created.
QMqtt::ReasonCode::SubscriptionQoSLevel2 0x02 A subscription with QoS level 2 has been created.
QMqtt::ReasonCode::NoMatchingSubscriber 0x10 The message has been accepted by the server, but there are no subscribers to receive this message. A broker may send this reason code instead of Success.
QMqtt::ReasonCode::NoSubscriptionExisted (since Qt 5.15) 0x11 No matching Topic Filter is being used by the Client.
QMqtt::ReasonCode::ContinueAuthentication (since Qt 5.15) 0x18 Continue the authentication with another step.
QMqtt::ReasonCode::ReAuthenticate (since Qt 5.15) 0x19 Initiate a re-authentication.
QMqtt::ReasonCode::UnspecifiedError 0x80 An unspecified error occurred.
QMqtt::ReasonCode::MalformedPacket 0x81 The packet sent to the server is invalid.
QMqtt::ReasonCode::ProtocolError 0x82 A protocol error has occurred. In most cases, this will cause the server to disconnect the client.
QMqtt::ReasonCode::ImplementationSpecificError 0x83 The packet is valid, but the recipient rejects it.
QMqtt::ReasonCode::UnsupportedProtocolVersion 0x84 The requested protocol version is not supported by the server.
QMqtt::ReasonCode::InvalidClientId 0x85 The client ID is invalid.
QMqtt::ReasonCode::InvalidUserNameOrPassword 0x86 The username or password specified is invalid.
QMqtt::ReasonCode::NotAuthorized 0x87 The client is not authorized for the specified action.
QMqtt::ReasonCode::ServerNotAvailable 0x88 The server to connect to is not available.
QMqtt::ReasonCode::ServerBusy 0x89 The server to connect to is not available. The client is asked to try at a later time.
QMqtt::ReasonCode::ClientBanned 0x8A The client has been banned from the server.
QMqtt::ReasonCode::InvalidAuthenticationMethod 0x8C The authentication method specified is invalid.
QMqtt::ReasonCode::InvalidTopicFilter 0x8F The topic filter specified is invalid.
QMqtt::ReasonCode::InvalidTopicName 0x90 The topic name specified is invalid.
QMqtt::ReasonCode::MessageIdInUse 0x91 The message ID used in the previous packet is already in use.
QMqtt::ReasonCode::MessageIdNotFound 0x92 The message ID used in the previous packet has not been found.
QMqtt::ReasonCode::PacketTooLarge 0x95 The packet received is too large. See also QMqttServerConnectionProperties::maximumPacketSize().
QMqtt::ReasonCode::QuotaExceeded 0x97 An administratively imposed limit has been exceeded.
QMqtt::ReasonCode::InvalidPayloadFormat 0x99 The payload format is invalid. See also QMqttPublishProperties::payloadFormatIndicator().
QMqtt::ReasonCode::RetainNotSupported 0x9A The server does not support retained messages. See also QMqttServerConnectionProperties::retainAvailable().
QMqtt::ReasonCode::QoSNotSupported 0x9B The QoS level requested is not supported. See also QMqttServerConnectionProperties::maximumQoS().
QMqtt::ReasonCode::UseAnotherServer 0x9C The server the client tries to connect to is not available. See also QMqttServerConnectionProperties::serverReference().
QMqtt::ReasonCode::ServerMoved 0x9D The server the client tries to connect to has moved to a new address. See also QMqttServerConnectionProperties::serverReference().
QMqtt::ReasonCode::SharedSubscriptionsNotSupported 0x9E Shared subscriptions are not supported. See also QMqttServerConnectionProperties::sharedSubscriptionSupported().
QMqtt::ReasonCode::ExceededConnectionRate 0x9F The connection rate limit has been exceeded.
QMqtt::ReasonCode::SubscriptionIdsNotSupported 0xA1 Subscription IDs are not supported. See also QMqttServerConnectionProperties::subscriptionIdentifierSupported().
QMqtt::ReasonCode::WildCardSubscriptionsNotSupported 0xA2 Subscriptions using wildcards are not supported by the server. See also QMqttServerConnectionProperties::wildcardSupported().

Not all values are available in every use case. Especially, some servers will reject a reason code not suited for a specific command. See below table to highlight expected reason codes for specific actions.

Reason Code Connect Properties Subscription Properties Message Properties
Success X X X
SubscriptionQoSLevel0 X
SubscriptionQoSLevel1 X
SubscriptionQoSLevel2 X
NoMatchingSubscriber X
UnspecifiedError X X X
MalformedPacket X
ProtocolError X
ImplementationSpecificError X X X
UnsupportedProtocolVersion X
InvalidClientId X
InvalidUserNameOrPassword X
NotAuthorized X X X
ServerNotAvailable X
ServerBusy X
ClientBanned X
InvalidAuthenticationMethod X
InvalidTopicFilter X
InvalidTopicName X X
MessageIdInUse X X
MessageIdNotFound X
PacketTooLarge X
QuotaExceeded X X X
InvalidPayloadFormat X X
RetainNotSupported X
QoSNotSupported X
UseAnotherServer X
ServerMoved X
SharedSubscriptionsNotSupported X
ExceededConnectionRate X
SubscriptionIdsNotSupported X
WildCardSubscriptionsNotSupported X

This enum was introduced or modified in Qt 5.12.

Qt_Technology_Partner_RGB_475 Qt_Service_Partner_RGB_475_padded