文章目录
QOS
什么是Qos
Qos:Quality of Service,服务质量。设置不同的等级可以确保某些重要信息准确传输到接收端。
Qos级别
- Qos = 0:最多发一次
- Qos = 1:最少发一次
- Qos = 2:保证收一次
Qos = 0
Qos的最低级别, 最多发一次,无论接收端是否接收消息。该级别不能保证所有信息都能得以传输,接收端能不能接收到信息与网络的稳定情况有关,完全依赖于TCP重传机制。
Qos = 1
最少发送一次,发送端在发送完信息后会检查接收端是否接到信息
消息传输情况

假如一段时间内,发送端没有接收到PUBACK报文,则发送端会再次发送消息,然后等待接收端的PUBACK报文。
所以当Qos = 1时,每条消息至少会传送一次。当发送端重复发送同一条消息时,会将PUBLISH中的dup设置为true。
MQTT 客户端在接收到消息之后,可以去判断 dup 标志以确定此消息是否为重复消息,应用程序应该对此作出相应的处理
注意:Qos=1 时,MQTT 服务器是不会进行去重的,只要发布者或者服务器没有收到 PUBACK 报文,
就认为主题消息没有发送成功进入重发;服务器或者订阅者,不会根据 dup 标志的值进行去重(也就是说
协议本身不会去重),需要我们的客户端应用程序去进行判断、处理。

文章详细介绍了MQTT协议中的QoS级别,包括Qos=0的最多发一次,Qos=1的最少发一次,以及Qos=2的保证接收一次。此外,还讨论了保留消息的作用、更新和删除,心跳机制的原理,以及遗嘱机制在客户端意外断线时如何处理。同时提到了用户密码认证在连接服务端时的角色。
3345

被折叠的 条评论
为什么被折叠?



