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::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,表示客户端的信息处理已经完成。

enum class QMqtt::PayloadFormatIndicator

有效载荷格式提供了有关报文内容的信息。这有助于其他客户端更快地处理信息。

常量说明
QMqtt::PayloadFormatIndicator::Unspecified0未指定格式。
QMqtt::PayloadFormatIndicator::UTF8Encoded1报文有效载荷格式为 UTF-8 编码字符数据。

enum class QMqtt::ReasonCode

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

常量说明
QMqtt::ReasonCode::Success0指定操作已成功。
QMqtt::ReasonCode::SubscriptionQoSLevel00已创建 QoS 级别为 0 的订阅。
QMqtt::ReasonCode::SubscriptionQoSLevel10x01已创建 QoS 等级 1 的订阅。
QMqtt::ReasonCode::SubscriptionQoSLevel20x02已创建 QoS 等级 2 的订阅。
QMqtt::ReasonCode::NoMatchingSubscriber0x10服务器已接受该消息,但没有订阅者接收该消息。代理可以发送此原因代码,而不是 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::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
订阅 QoSLevel0X
订阅 QoSLevel1X
订阅 QoSLevel2X
无匹配订阅者X
未指定错误XXX
畸形数据包X
协议错误X
特定于实现的错误XXX
不支持的协议版本X
无效客户端标识X
无效用户名或密码X
未授权XXX
服务器不可用X
服务器繁忙X
客户端禁用X
无效身份验证方法X
无效主题过滤器X
无效主题名称XX
使用中的消息 IDXX
MessageIdNotFoundX
数据包过大X
配额已超XXX
无效负载格式XX
保留不支持X
不支持 QoSNX
使用其他服务器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.