4.1 服务质量等级和流
等级0 : 最多一个发送
消息发送依据底层TCP/IP网络的最大努力发送,可能无响应及无重发机制,
服务器可接收一次或不能接收。
QoS 等级1: 最少一次发送
服务器接收消息后,回复PUBACK消息确认。
如果因通信连接或发送设备的原因导致识别失败,或者未在一定时间内接收到去人消息,发送者将消息头DUP置1,然后重发。
消息到达服务至少一次,SUBSCRIBE和UNSUBSCRIBE消息使用服务等级1.
服务等级1的消息头中有一个消息ID。
如果客服端没有接收到PUBACK消息(在应用定义的时间范围内)或者检测到通信重启,客户端置DUP标记重新PUBLIAH消息。
接收到客户端发送的重复消息是,服务端重发消息给订阅者,并发送另外一个PUBACK消息。
QoS等级2
在QoS等级附加协议流,确认应用不会接收到重复的消息,这是最高等级的发送,重复消息是不可接受的。
消息等级消息头有Message ID.
PUBLISH流中接收者需处理2中机制。
它影响数据流中这点,定阅者是否对消息可见
如果检测到失败,抑或时间超时,协议流从上一次为确认的协议消息开始,PUBLISH或PUBREL
4.2 消息重发
如果在一定时间内未接收到响应,发送者应置1消息中的DUP标记。
重发超时是一个可配置选项,因此必须确保发送是不会超时。
档客户端重新是,如未定义全新对话,客户端和服务端需重发 空中消息。
客户端需重新发送消息,代理则应重发为确认消息。