QMqtt Namespace
包含整个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
该枚举类型指定了报文的可用状态。根据客户机的 QoS 和角色,预计会有不同的报文状态。
常量 | 值 | 说明 |
---|---|---|
QMqtt::MessageStatus::Unknown | 0 | 消息状态未知。 |
QMqtt::MessageStatus::Published | 1 | 客户端收到了其订阅之一的信息。这适用于 QoS 等级 1 和 2。 |
QMqtt::MessageStatus::Acknowledged | 2 | 信息已确认。这适用于 QoS 1,表示客户端已完成信息处理。 |
QMqtt::MessageStatus::Received | 3 | 已收到一条信息。这适用于 QoS 2。 |
QMqtt::MessageStatus::Released | 4 | 信息已发布。这适用于 QoS 2。 对于发布者,信息处理已经完成。 |
QMqtt::MessageStatus::Completed | 5 | 一条信息已处理完毕。这适用于 QoS 2,表示客户端的信息处理已经完成。 |
enum class QMqtt::PayloadFormatIndicator
有效载荷格式提供了有关报文内容的信息。这有助于其他客户端更快地处理信息。
常量 | 值 | 说明 |
---|---|---|
QMqtt::PayloadFormatIndicator::Unspecified | 0 | 未指定格式。 |
QMqtt::PayloadFormatIndicator::UTF8Encoded | 1 | 报文有效载荷格式为 UTF-8 编码字符数据。 |
enum class QMqtt::ReasonCode
该枚举类型指定了可用的错误代码。
常量 | 值 | 说明 |
---|---|---|
QMqtt::ReasonCode::Success | 0 | 指定操作已成功。 |
QMqtt::ReasonCode::SubscriptionQoSLevel0 | 0 | 已创建 QoS 级别为 0 的订阅。 |
QMqtt::ReasonCode::SubscriptionQoSLevel1 | 0x01 | 已创建 QoS 等级 1 的订阅。 |
QMqtt::ReasonCode::SubscriptionQoSLevel2 | 0x02 | 已创建 QoS 等级 2 的订阅。 |
QMqtt::ReasonCode::NoMatchingSubscriber | 0x10 | 服务器已接受该消息,但没有订阅者接收该消息。代理可以发送此原因代码,而不是 Success(成功)。 |
QMqtt::ReasonCode::NoSubscriptionExisted (since Qt 5.15) | 0x11 | 客户端未使用匹配的主题过滤器。 |
QMqtt::ReasonCode::ContinueAuthentication (since Qt 5.15) | 0x18 | 换一步继续身份验证。 |
QMqtt::ReasonCode::ReAuthenticate (since Qt 5.15) | 0x19 | 启动重新身份验证。 |
QMqtt::ReasonCode::UnspecifiedError | 0x80 | 发生不明错误。 |
QMqtt::ReasonCode::MalformedPacket | 0x81 | 发送到服务器的数据包无效。 |
QMqtt::ReasonCode::ProtocolError | 0x82 | 发生协议错误。在大多数情况下,这会导致服务器断开客户端连接。 |
QMqtt::ReasonCode::ImplementationSpecificError | 0x83 | 数据包有效,但接收方拒绝接受。 |
QMqtt::ReasonCode::UnsupportedProtocolVersion | 0x84 | 服务器不支持请求的协议版本。 |
QMqtt::ReasonCode::InvalidClientId | 0x85 | 客户端 ID 无效。 |
QMqtt::ReasonCode::InvalidUserNameOrPassword | 0x86 | 指定的用户名或密码无效。 |
QMqtt::ReasonCode::NotAuthorized | 0x87 | 客户端未获得指定操作的授权。 |
QMqtt::ReasonCode::ServerNotAvailable | 0x88 | 要连接的服务器不可用。 |
QMqtt::ReasonCode::ServerBusy | 0x89 | 要连接的服务器不可用。要求客户端稍后再试。 |
QMqtt::ReasonCode::ClientBanned | 0x8A | 客户端已被禁止访问服务器。 |
QMqtt::ReasonCode::InvalidAuthenticationMethod | 0x8C | 指定的验证方法无效。 |
QMqtt::ReasonCode::InvalidTopicFilter | 0x8F | 指定的主题过滤器无效。 |
QMqtt::ReasonCode::InvalidTopicName | 0x90 | 指定的主题名称无效。 |
QMqtt::ReasonCode::MessageIdInUse | 0x91 | 前一个数据包中使用的信息 ID 已被使用。 |
QMqtt::ReasonCode::MessageIdNotFound | 0x92 | 未找到前一个数据包中使用的信息 ID。 |
QMqtt::ReasonCode::PacketTooLarge | 0x95 | 收到的数据包太大。另请参阅QMqttServerConnectionProperties::maximumPacketSize()。 |
QMqtt::ReasonCode::QuotaExceeded | 0x97 | 已超过管理规定的限制。 |
QMqtt::ReasonCode::InvalidPayloadFormat | 0x99 | 有效负载格式无效。另请参阅QMqttPublishProperties::payloadFormatIndicator()。 |
QMqtt::ReasonCode::RetainNotSupported | 0x9A | 服务器不支持保留信息。另请参阅QMqttServerConnectionProperties::retainAvailable( )。 |
QMqtt::ReasonCode::QoSNotSupported | 0x9B | 不支持请求的 QoS 级别。另请参阅QMqttServerConnectionProperties::maximumQoS() 。 |
QMqtt::ReasonCode::UseAnotherServer | 0x9C | 客户端尝试连接的服务器不可用。另请参阅QMqttServerConnectionProperties::serverReference( )。 |
QMqtt::ReasonCode::ServerMoved | 0x9D | 客户端尝试连接的服务器已迁移到新地址。另请参阅QMqttServerConnectionProperties::serverReference( )。 |
QMqtt::ReasonCode::SharedSubscriptionsNotSupported | 0x9E | 不支持共享订阅。另请参阅QMqttServerConnectionProperties::sharedSubscriptionSupported()。 |
QMqtt::ReasonCode::ExceededConnectionRate | 0x9F | 已超过连接速率限制。 |
QMqtt::ReasonCode::SubscriptionIdsNotSupported | 0xA1 | 不支持订阅 ID。另请参阅QMqttServerConnectionProperties::subscriptionIdentifierSupported()。 |
QMqtt::ReasonCode::WildCardSubscriptionsNotSupported | 0xA2 | 服务器不支持使用通配符的订阅。另请参阅QMqttServerConnectionProperties::wildcardSupported()。 |
并非所有值在每种使用情况下都可用。特别是,有些服务器会拒绝不适合特定命令的原因代码。请参阅下表,了解特定操作的预期原因代码。
原因代码 | 连接属性 | 订阅属性 | 信息属性 |
---|---|---|---|
成功 | X | X | X |
订阅 QoSLevel0 | X | ||
订阅 QoSLevel1 | X | ||
订阅 QoSLevel2 | X | ||
无匹配订阅者 | X | ||
未指定错误 | X | X | X |
畸形数据包 | X | ||
协议错误 | X | ||
特定于实现的错误 | X | X | X |
不支持的协议版本 | X | ||
无效客户端标识 | X | ||
无效用户名或密码 | X | ||
未授权 | X | X | X |
服务器不可用 | X | ||
服务器繁忙 | X | ||
客户端禁用 | X | ||
无效身份验证方法 | X | ||
无效主题过滤器 | X | ||
无效主题名称 | X | X | |
使用中的消息 ID | X | X | |
MessageIdNotFound | X | ||
数据包过大 | X | ||
配额已超 | X | X | X |
无效负载格式 | X | X | |
保留不支持 | X | ||
不支持 QoSN | X | ||
使用其他服务器 | X | ||
服务器已移动 | X | ||
共享订阅不支持 | X | ||
连接速率超限 | X | ||
订阅标识不支持 | X | ||
不支持通配符订阅 | X |
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.