QMqtt 命名空间
包含在整个 Qt MQTT 模块中使用的各种标识符。 更多...
头文件 | #include <QMqtt> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Mqtt) target_link_libraries(mytarget PRIVATE Qt6::Mqtt) |
qmake | QT += mqtt |
类型
枚举类型 | MessageStatus { Unknown, Published, Acknowledged, Received, Released, Completed } |
枚举类型 | PayloadFormatIndicator { Unspecified, UTF8Encoded } |
枚举类型 | ReasonCode { Success, SubscriptionQoSLevel0, SubscriptionQoSLevel1, SubscriptionQoSLevel2, NoMatchingSubscriber, …, WildCardSubscriptionsNotSupported } |
类型文档
枚举类型 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,表示客户端已处理完消息。 |
枚举类型 QMqtt::PayloadFormatIndicator
有效载荷格式提供有关消息内容的信息。这可以帮助其他客户端更快地处理消息。
常量 | 值 | 描述 |
---|---|---|
QMqtt::PayloadFormatIndicator::Unspecified | 0 | 格式未指定。 |
QMqtt::PayloadFormatIndicator::UTF8Encoded | 1 | 消息的有效载荷格式化为 UTF-8 编码字符数据。 |
枚举类型 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 | 消息已被服务器接受,但没有订阅者接收此消息。代理可能发送此原因代码而不是成功。 |
QMqtt::ReasonCode::NoSubscriptionExisted (自 Qt 5.15) | 0x11 | 客户端没有使用匹配的主题过滤器。 |
QMqtt::ReasonCode::ContinueAuthentication (自 Qt 5.15) | 0x18 | 继续进行另一步的认证。 |
QMqtt::ReasonCode::ReAuthenticate (自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 |
订阅QoS级别0 | X | ||
订阅QoS级别1 | X | ||
订阅QoS级别2 | X | ||
未找到匹配的订阅者 | X | ||
未指定错误 | X | X | X |
畸形数据包 | X | ||
协议错误 | X | ||
实现特定错误 | X | X | X |
不支持协议版本 | X | ||
无效的客户端ID | X | ||
无效的用户名或密码 | X | ||
未授权 | X | X | X |
服务器不可用 | X | ||
服务器忙 | X | ||
客户端被封禁 | X | ||
无效的认证方法 | X | ||
无效的主题过滤器 | X | ||
无效的主题名称 | X | X | |
消息ID正在使用中 | X | X | |
消息ID未找到 | X | ||
数据包太大 | X | ||
配额超出 | X | X | X |
无效的有效负载格式 | X | X | |
不支持保留 | X | ||
不支持QoS | X | ||
使用另一个服务器 | X | ||
服务器已移动 | X | ||
不支持共享订阅 | X | ||
超过连接速率 | X | ||
不支持订阅ID | X | ||
不支持通配符订阅 | X |
© 2024 The Qt Company Ltd. 本文档中的文档贡献为各自所有者的版权。本提供的文档是根据自由软件基金会发布的GNU自由文档许可版1.3许可的。Qt及其相关标志为The Qt Company Ltd.在芬兰和/或其他国家的商标。所有其他商标均为各自所有者的财产。