class QMqtt#

包含在Qt MQTT模块中使用的多个标识符。更多信息

注意

此文档可能包含从C++自动转换为Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译中有问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来让我们知道。

详细描述#

class PayloadFormatIndicator#

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

常量

描述

QMqtt.PayloadFormatIndicator.Unspecified

格式未指定。

QMqtt.PayloadFormatIndicator.UTF8Encoded

消息的有效载荷以UTF-8编码字符数据格式。

class MessageStatus#

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

常量

描述

QMqtt.MessageStatus.Unknown

消息状态未知。

QMqtt.MessageStatus.Published

客户端接收到其订阅中的一个消息。适用于QoS级别1和2。

QMqtt.MessageStatus.Acknowledged

消息已被确认。这适用于QoS 1,表示客户端已完成消息处理。

QMqtt.MessageStatus.Received

消息已被接收。这适用于QoS 2。

QMqtt.MessageStatus.Released

消息已被释放。这适用于QoS 2。对于发布者而言,已完成消息处理。

QMqtt.MessageStatus.Completed

消息已完成。这适用于QoS 2,表示客户端已完成消息处理。

class ReasonCode#

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

常量

描述

QMqtt.ReasonCode.Success

指定的操作已成功。

QMqtt.ReasonCode.SubscriptionQoSLevel0

已创建一个QoS级别为0的订阅。

QMqtt.ReasonCode.SubscriptionQoSLevel1

已创建一个QoS级别为1的订阅。

QMqtt.ReasonCode.SubscriptionQoSLevel2

已创建一个QoS级别为2的订阅。

QMqtt.ReasonCode.NoMatchingSubscriber

服务器已接受消息,但没有订阅者接收此消息。代理可能发送此错误代码而不是Success。

QMqtt.ReasonCode.NoSubscriptionExisted

客户端未使用匹配的主题过滤器。

QMqtt.ReasonCode.ContinueAuthentication

继续进行另一个步骤的认证。

QMqtt.ReasonCode.ReAuthenticate

启动重新认证。

QMqtt.ReasonCode.UnspecifiedError

发生了一个未指定的错误。

QMqtt.ReasonCode.MalformedPacket

发送到服务器的数据包无效。

QMqtt.ReasonCode.ProtocolError

发生了一个协议错误。在大多数情况下,这将导致服务器断开客户端的连接。

QMqtt.ReasonCode.ImplementationSpecificError

数据包有效,但接收者拒绝它。

QMqtt.ReasonCode.UnsupportedProtocolVersion

服务器不支持请求的协议版本。

QMqtt.ReasonCode.InvalidClientId

客户端ID无效。

QMqtt.ReasonCode.InvalidUserNameOrPassword

指定的用户名或密码无效。

QMqtt.ReasonCode.NotAuthorized

客户端未授权执行指定操作。

QMqtt.ReasonCode.ServerNotAvailable

要连接的服务器不可用。

QMqtt.ReasonCode.ServerBusy

要连接的服务器不可用。客户端被要求稍后重试。

QMqtt.ReasonCode.ClientBanned

客户端已被服务器禁止。

QMqtt.ReasonCode.InvalidAuthenticationMethod

指定的认证方法无效。

QMqtt.ReasonCode.InvalidTopicFilter

指定的主题过滤器无效。

QMqtt.ReasonCode.InvalidTopicName

指定的主题名称无效。

QMqtt.ReasonCode.MessageIdInUse

在先前数据包中使用的消息ID已被使用。

QMqtt.ReasonCode.MessageIdNotFound

在先前数据包中使用的消息ID未找到。

QMqtt.ReasonCode.PacketTooLarge

接收到的数据包过大。另见maximumPacketSize()

QMqtt.ReasonCode.QuotaExceeded

已超过管理强制的限制。

QMqtt.ReasonCode.InvalidPayloadFormat

有效载荷格式无效。另见payloadFormatIndicator()

QMqtt.ReasonCode.RetainNotSupported

服务器不支持保留消息。另见retainAvailable()

QMqtt.ReasonCode.QoSNotSupported

请求的QoS级别不受支持。另见maximumQoS()

QMqtt.ReasonCode.UseAnotherServer

客户端尝试连接的服务器不可用。另请参阅 serverReference() .

QMqtt.ReasonCode.ServerMoved

客户端尝试连接的服务器已移动到新地址。另请参阅 serverReference() .

QMqtt.ReasonCode.SharedSubscriptionsNotSupported

不支持共享订阅。另请参阅 sharedSubscriptionSupported() .

QMqtt.ReasonCode.ExceededConnectionRate

已超出连接速率限制。

QMqtt.ReasonCode.SubscriptionIdsNotSupported

不支持订阅ID。另请参阅 subscriptionIdentifierSupported() .

QMqtt.ReasonCode.WildcardSubscriptionsNotSupported

服务器不支持使用通配符的订阅。另请参阅 wildcardSupported() .

并非所有值在每个用例中都可用。特别是,一些服务器将拒绝特定命令不适用的原因代码。以下是表中突出显示特定操作的预期原因代码。

原因代码

连接属性

订阅属性

消息属性

成功

X

X

X

订阅QoSLevel0

X

订阅QoSLevel1

X

订阅QoSLevel2

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