QMqtt 命名空间

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

头文件 #include <QMqtt>
CMakefind_package(Qt6 REQUIRED COMPONENTS Mqtt)
target_link_libraries(mytarget PRIVATE Qt6::Mqtt)
qmakeQT += mqtt

类型

枚举类型MessageStatus { Unknown, Published, Acknowledged, Received, Released, Completed }
枚举类型PayloadFormatIndicator { Unspecified, UTF8Encoded }
枚举类型ReasonCode { Success, SubscriptionQoSLevel0, SubscriptionQoSLevel1, SubscriptionQoSLevel2, NoMatchingSubscriber, …, WildCardSubscriptionsNotSupported }

详细说明

类型文档

枚举类型 QMqtt::MessageStatus

此枚举类型指定了消息的可用状态。根据 QoS 和客户端的角色,可能会期望不同消息状态。

常量描述
QMqtt::MessageStatus::Unknown0消息状态是未知的。
QMqtt::MessageStatus::Published1客户端收到了其订阅之一的消息。这适用于 QoS 级别 1 和 2。
QMqtt::MessageStatus::Acknowledged2一条消息已被确认。这适用于 QoS 1,表示客户端已处理完消息。
QMqtt::MessageStatus::Received3已收到一条消息。这适用于 QoS 2。
QMqtt::MessageStatus::Released4已发布一条消息。这适用于 QoS 2。对于发布者而言,消息处理已完成。
QMqtt::MessageStatus::Completed5一条消息已完成。这适用于 QoS 2,表示客户端已处理完消息。

枚举类型 QMqtt::PayloadFormatIndicator

有效载荷格式提供有关消息内容的信息。这可以帮助其他客户端更快地处理消息。

常量描述
QMqtt::PayloadFormatIndicator::Unspecified0格式未指定。
QMqtt::PayloadFormatIndicator::UTF8Encoded1消息的有效载荷格式化为 UTF-8 编码字符数据。

枚举类型 QMqtt::ReasonCode

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

常量描述
QMqtt::ReasonCode::Success0指定的操作已成功。
QMqtt::ReasonCode::SubscriptionQoSLevel00已创建 QoS 级别 0 的订阅。
QMqtt::ReasonCode::SubscriptionQoSLevel10x01已创建 QoS 级别 1 的订阅。
QMqtt::ReasonCode::SubscriptionQoSLevel20x02已创建 QoS 级别 2 的订阅。
QMqtt::ReasonCode::NoMatchingSubscriber0x10消息已被服务器接受,但没有订阅者接收此消息。代理可能发送此原因代码而不是成功。
QMqtt::ReasonCode::NoSubscriptionExisted (自 Qt 5.15)0x11客户端没有使用匹配的主题过滤器。
QMqtt::ReasonCode::ContinueAuthentication (自 Qt 5.15)0x18继续进行另一步的认证。
QMqtt::ReasonCode::ReAuthenticate (自Qt 5.15起)0x19启动重新认证。
QMqtt::ReasonCode::UnspecifiedError0x80发生了未知错误。
QMqtt::ReasonCode::MalformedPacket0x81发送给服务器的数据包无效。
QMqtt::ReasonCode::ProtocolError0x82发生了协议错误。在大多数情况下,这将导致服务器断开客户机的连接。
QMqtt::ReasonCode::ImplementationSpecificError0x83数据包有效,但接收端拒绝。
QMqtt::ReasonCode::UnsupportedProtocolVersion0x84请求的协议版本不受服务器支持。
QMqtt::ReasonCode::InvalidClientId0x85客户端ID无效。
QMqtt::ReasonCode::InvalidUserNameOrPassword0x86指定的用户名或密码无效。
QMqtt::ReasonCode::NotAuthorized0x87客户机未获得指定操作的授权。
QMqtt::ReasonCode::ServerNotAvailable0x88要连接的服务器不可用。
QMqtt::ReasonCode::ServerBusy0x89要连接的服务器不可用。客户端被要求稍后再尝试。
QMqtt::ReasonCode::ClientBanned0x8A客户端已被服务器禁止。
QMqtt::ReasonCode::InvalidAuthenticationMethod0x8C指定的认证方法无效。
QMqtt::ReasonCode::InvalidTopicFilter0x8F指定的主题过滤器无效。
QMqtt::ReasonCode::InvalidTopicName0x90指定的主题名称无效。
QMqtt::ReasonCode::MessageIdInUse0x91在之前的包中使用的消息ID已被使用。
QMqtt::ReasonCode::MessageIdNotFound0x92在之前的包中使用的消息ID未找到。
QMqtt::ReasonCode::PacketTooLarge0x95接收到的数据包太大。另请参阅 QMqttServerConnectionProperties::maximumPacketSize
QMqtt::ReasonCode::QuotaExceeded0x97超过了管理上指定的限制。
QMqtt::ReasonCode::InvalidPayloadFormat0x99负载格式无效。另请参阅 QMqttPublishProperties::payloadFormatIndicator
QMqtt::ReasonCode::RetainNotSupported0x9A服务器不支持保留消息。另请参阅 QMqttServerConnectionProperties::retainAvailable
QMqtt::ReasonCode::QoSNotSupported0x9B请求的QoS级别不受支持。另请参阅 QMqttServerConnectionProperties::maximumQoS
QMqtt::ReasonCode::UseAnotherServer0x9C客户端尝试连接的服务器不可用。另请参阅 QMqttServerConnectionProperties::serverReference
QMqtt::ReasonCode::ServerMoved0x9D客户端尝试连接的服务器已移动到新地址。另请参阅 QMqttServerConnectionProperties::serverReference
QMqtt::ReasonCode::SharedSubscriptionsNotSupported0x9E不支持共享订阅。另请参阅 QMqttServerConnectionProperties::sharedSubscriptionSupported
QMqtt::ReasonCode::ExceededConnectionRate0x9F超过了连接速率限制。
QMqtt::ReasonCode::SubscriptionIdsNotSupported0xA1不支持订阅ID。另请参阅 QMqttServerConnectionProperties::subscriptionIdentifierSupported
QMqtt::ReasonCode::WildCardSubscriptionsNotSupported0xA2服务器不支持使用通配符的订阅。另请参阅 QMqttServerConnectionProperties::wildcardSupported

并非所有值都适用于所有用例。特别是,一些服务器会拒绝与特定命令不匹配的理由代码。请参见下表以突出显示特定操作的预期理由代码。

理由代码连接属性订阅属性消息属性
成功XXX
订阅QoS级别0X
订阅QoS级别1X
订阅QoS级别2X
未找到匹配的订阅者X
未指定错误XXX
畸形数据包X
协议错误X
实现特定错误XXX
不支持协议版本X
无效的客户端IDX
无效的用户名或密码X
未授权XXX
服务器不可用X
服务器忙X
客户端被封禁X
无效的认证方法X
无效的主题过滤器X
无效的主题名称XX
消息ID正在使用中XX
消息ID未找到X
数据包太大X
配额超出XXX
无效的有效负载格式XX
不支持保留X
不支持QoSX
使用另一个服务器X
服务器已移动X
不支持共享订阅X
超过连接速率X
不支持订阅IDX
不支持通配符订阅X

© 2024 The Qt Company Ltd. 本文档中的文档贡献为各自所有者的版权。本提供的文档是根据自由软件基金会发布的GNU自由文档许可版1.3许可的。Qt及其相关标志为The Qt Company Ltd.在芬兰和/或其他国家的商标。所有其他商标均为各自所有者的财产。