与QoS0类似,可以是客户端向服务端发布,也可以是服务端向客户端发布消息。但是在QoS1的服务质量中,接收者需要对发布者的消息进行回应。
一、场景示意图
二、协议简述
PUBLISH报文这里不再赘述,参见 MQTT协议(五)——QoS0发布。在QoS1的服务质量下,接收者在收到PUBLISH报文之后需要回应PUBLISH ACK报文。如果由于网络等其它原因发送者没有收到PUBLISH ACK报文,发送者可以重新发送该消息,所以这种服务质量被称为“至少一次”。
PUBLISH ACK报文较为简单,组成如下。
- 固定报文头。第一个字节是
控制报文标识符
,紧接着的字节为报文的剩余长度
,这个剩余长度是不包含固定报文头的; - 报文标识符。共两个字节MSB、LSB。所以1中的报文剩余长度始终为2。