视频链接:https://www.bilibili.com/video/BV1FK4y1L7TQ/?spm_id_from=333.788.recommend_more_video.-1&vd_source=b91967c499b23106586d7aa35af46413
资料链接:http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-tuttorial/mqtt-tutorial/mqtt-qos/
为什么要制定多种服务质量级别,而不直接采用一种?
答:这是由物联网的属性决定的,物联网的带宽在有些情况下是非常宝贵的,且有时候是非常不稳定的。考虑到这些特质,MQTT 协议才设置了多种服务质量级别。因为比较低级的服务质量级别所占用的服务带宽也是最低的,传输的稳定性也是最低的。相反,对于服务质量级别高的消息而言,所占用的服务带宽也是比较高的,传输的稳定性也是比较高的。
总结:
要想实现 QoS = 1/2 的通信,需要进行以下三步。
第一步,客户端发布消息时,QoS 设置为 1/2 ,
第二步,客户端在连接服务端时,必须要将 cleanSession 设置为 false,
第三步,客户端在订阅主题的时候,订阅的 SUBSCRIBE 数据包中的 QoS 必须设置为 1/2。
这三步非常关键,缺一不可。
总结:以最低的级别为准。