QMqtt 名称空间

包含整个 Qt MQTT 模块所用的各种标识符。 更多...

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

类型

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

详细描述

类型文档编制

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.

常量 描述
QMqtt::MessageStatus::Unknown 0 消息状态未知。
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.

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.

常量 描述
QMqtt::PayloadFormatIndicator::Unspecified 0 未指定格式。
QMqtt::PayloadFormatIndicator::UTF8Encoded 1 The payload of the message is formatted as UTF-8 Encoded Character Data.

enum class QMqtt:: ReasonCode

此枚举类型指定可用错误代码。

常量 描述
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 出现未指定错误。
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.

原因代码 连接特性 订阅特性 消息特性
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