从零开始开发物联网项目(3)——mqtt协议QoS详解

本文详细介绍了MQTT协议中的服务质量(QoS)级别,包括00、01和10三种情况。QoS 00确保消息最多发送一次,适合对数据完整性要求不高的场景;QoS 01确保消息至少送达一次,服务器会返回确认;QoS 10确保消息仅送达一次,通过确认机制避免重复。内容涵盖了MQTT报文结构和不同QoS级别的交互过程,帮助读者理解物联网项目中如何选择合适的QoS级别。
摘要由CSDN通过智能技术生成

上一节我们使用了网络调试助手来作为一个客户端,通过手动的方式连接Mqtt服务器以及发布消息。这一节我们继续来讲mqtt协议的消息发布。

首先呢来说说消息的服务质量,也就是Qos,即:保证消息传递的次数。

Qos有三种:

00:最多一次,即:<=1

01:至少一次,即:>=1

10:一次,即:=1

11:预留

上一次我们使用了00,也就是说最多发送一次,所以消息发出去后服务器并不会返回数据,这种方式虽然方便,但是有明显的缺陷,那就是数据未必会到达服务器端,所以只适用于对数据要求不高的情况,丢几个数据影响也不大的项目。这次我们来说说另外两种情况。

(1)QoS=00

首先来回顾一下上一节的两个指令,首先发送mqtt服务器连接指令:

10 19 00 06 4d 51 49 73 64 70 03 c2 01 2c00 05 4d 61 6b 65 72 00 01 72 00 01 72

待服务器返回20 02 00 00后发送:

30 04 00 01 73 68

第一个字节30对应的二进制位0011 0000

0011就是Publish(发布)消息。

0000就是QoS为00(中间两位),只发送一次。Dupflag(第一位)和Retain(最后一位)都设置为0,具体含义自己看前面的解释。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值