MQTT简介
MQTT(消息队列遥测传输)协议是建立在TCP协议之上,基于发布/订阅的一种数据传输协议。由于其实现简单,系统开销极低,所以非常适合用于对成本比较敏感的物联网应用场景。如今很多物联网设备与云端交互都是用的MQTT协议。由于在某些物联网场景,设备的网络环境往往受限,MQTT则提供了消息等级机制(Qos)来满足不同网络环境、不同应用场景下的传输需求。
MQTT提供了三类消息等级:
-Qos 0:最多传输一次:
只会发布一次。消息发布后发送方不会确保发布的消息对端是否收到。
-Qos 1:最少收到一次
发布消息后,发布消息那一方会等待对方的PUBACK。在发送方的超时时间之内如果没有收到对端的PUBACK。发送方会重新发送消息以确保接收方能收到。
-Qos 2:只收到一次
发布消息过程中收发双方会经过四次握手过程(PUBREC、PUBREL、PUBCOMP)来确保数据只会接收一次。在握手任一步骤出错或未收到数据,都会重启整个发送步骤,知道发送成功
1、Qos 0(At Most Once):
优势:通讯机制简单,容易实现,对于流量消耗有限制的设备(比如通过4G传输的设备)能减少流量消耗
缺点:由于没有确认机制,数据可能不会到达订阅方(即使TCP有完整的重传机制)。
适用场景:适用于对数据丢包不敏感的场景如:数据实时监测,传感器采集上报,日志记录等。
2、Qos 1(At Least Once):
优势:发布数据时有PUBACK机制,可以确保数据的到达。
缺点:发送方有可能没收到接收方的PUBACK从而导致接收方可能同一条消息收到多次
适用场景:适用于对数据的重复性要求不高,但对可靠性有一定要求的场景如:开关状态同步等。
3、Qos 2(Exactly Once):
优势:基于复杂且完善的数据发布过程,可以确保发布的消息不会丢失与重复。
缺点:由于传输机制相对复杂,传输效率较低。
适用场景:对消息的丢失或重复不能接受的场景如:交易订单、在线聊天(如QQ、微信)。
在了解了MQTT在不同Qos等级下的消息收发机制后,我们在基于MQTT协议做应用时就能更好的选择适合应用场景的消息等级。
今天的分享就到这里啦,EBYTE每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多产品更多资料,感兴趣的小伙伴可以登录我们的亿佰特官网和企业公众号(微信号:cdebyte)进行了解,也可以直接拨打400电话咨询技术专员!
相关阅读:
7 X 24 销售服务热线
4000-330-990深圳办事处柯经理:18218726658 南京办事处葛经理:17626012283
成都总部销售经理:
秦 科(无线模块):18884314654 冯子恒(无线模块):18828049434
蔡友银(无线模块):13882211021 葛宇龙(通信设备):19138800613
胡兵(外贸销售经理):18584911141、 sales06@ebyte.com
业务邮箱:support@cdebyte.com 全国销售投诉电话:19934352316
地址:四川省成都市高新西区西区大道199号B5栋(前台座机:028-61543675)
©© 成都亿佰特电子科技有限公司【版权所有】 蜀ICP备13019384号