4.1 服务质量等级和流

等级0 : 最多一个发送

消息发送依据底层TCP/IP网络的最大努力发送,可能无响应及无重发机制,

服务器可接收一次或不能接收。

4. FLOWS - 图1

QoS 等级1: 最少一次发送

服务器接收消息后,回复PUBACK消息确认。

如果因通信连接或发送设备的原因导致识别失败,或者未在一定时间内接收到去人消息,发送者将消息头DUP置1,然后重发。

消息到达服务至少一次,SUBSCRIBE和UNSUBSCRIBE消息使用服务等级1.

服务等级1的消息头中有一个消息ID。

4. FLOWS - 图2

如果客服端没有接收到PUBACK消息(在应用定义的时间范围内)或者检测到通信重启,客户端置DUP标记重新PUBLIAH消息。

接收到客户端发送的重复消息是,服务端重发消息给订阅者,并发送另外一个PUBACK消息。

QoS等级2

在QoS等级附加协议流,确认应用不会接收到重复的消息,这是最高等级的发送,重复消息是不可接受的。

消息等级消息头有Message ID.

PUBLISH流中接收者需处理2中机制。

它影响数据流中这点,定阅者是否对消息可见

4. FLOWS - 图3

如果检测到失败,抑或时间超时,协议流从上一次为确认的协议消息开始,PUBLISH或PUBREL

4.2 消息重发

如果在一定时间内未接收到响应,发送者应置1消息中的DUP标记。

重发超时是一个可配置选项,因此必须确保发送是不会超时。

档客户端重新是,如未定义全新对话,客户端和服务端需重发 空中消息。

客户端需重新发送消息,代理则应重发为确认消息。