【MQTT 学习三】Qos、保留消息、心跳机制、遗嘱、用户密码认证

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

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 标志的值进行去重(也就是说
协议本身不会去重),需要我们的客户端应用程序去进行判断、处理。

</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值