1.QoS是MQTT协议中的一个重要标志位。在固定报头第一个字节,低4位中定义;
2.QoS服务质量等级分为三级:QoS0,QoS1,QoS2;
2.1.QoS0:最多发送一次,到达不到达发布者不管,发布者(客户端,服务端做为发送端的时候)只发送一次,不管接收端是否收到数据;
2.2.QoS1:至少到达一次,发布者需要到达后有确认,发布者(客户端,服务端做为发送端的时候)发布消息后等待接收者(客户端,服务端做为接收端的时候)的确认信息报文;如果发布都没有收到确认报文,发布者会一直发送消息;
2.3.QoS2:只有一次到达,发布者需要到达后确认,接收者需要发布者再次确认;
3.实际应用中的QoS等级,分为SUBSCRIBE QoS, PUBLISH Qos;
3.1. 实际通信过程中的QoS 取 SUBSCRIBE QoS, PUBLISH QoS中最小的QoS;
3.2.例如:
SUBSCRIBE QoS1 , PUBLISH Qos0 , 最终其他 SUBSCRIBE收到的为 PUBLISH Qos0 ;
SUBSCRIBE QoS0 , PUBLISH Qos1 , 最终其他 SUBSCRIBE收到的为 PUBLISH Qos0 ;
SUBSCRIBE QoS1 , PUBLISH Qos1 , 最终其他 SUBSCRIBE收到的为 PUBLISH Qos1 ;
SUBSCRIBE QoS1 , PUBLISH Qos2 , 最终其他 SUBSCRIBE收到的为 PUBLISH Qos1 ;