MQTT之QoS和流程

来源:互联网 发布:我知你好未再微盘 编辑:程序博客网 时间:2024/05/16 11:23

MQTT按照定义的服务质量 (QoS) 等级分发应用消息。分发协议是对称的,即客户端和服务端既可以是发送者也可以是接收者。分发协议关注的是从单个发送者到单个接收者的应用消息。服务端分发应用消息给多个客户端时,每个客户端独立处理。分发给客户端的出站应用消息和入站应用消息的QoS等级可能是不同的。

一、QoS 0 : 最多分发一次【At most once】
消息的分发依赖于底层网络的能力。接收者不会发送响应,发送者也不会重试。消息可能送达一次也可能根本没送达。
这里写图片描述

二、QoS 1 : 至少分发一次【At least once】
服务质量确保消息至少送达一次。QoS 1的PUBLISH报文的可变报头中包含一个报文标识符,需要PUBACK报文确认。2.3.1节提供了有关报文标识符的更多信息。
这里写图片描述

三、QoS 2 : 仅分发一次【Exactly once】
这是最高等级的服务质量,消息丢失和重复都是不可接受的。使用这个服务质量等级会有额外的开销。QoS 2的消息可变报头中有报文标识符。QoS 2的PUBLISH报文的接收者使用一个两步确认过程来确认收到。一旦发送者收到PUBCOMP报文,这个报文标识符就可以重用。
这里写图片描述这里写图片描述

0 0
原创粉丝点击