W3cubDocs

/Qt

QMqtt Namespace

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

Header: #include <QMqtt>
qmake: QT += mqtt
Since: Qt 5.12

Types

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.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qmqtt.html