MQTT**(**消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议 。它工作在TCP/IP协议族上 , 是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议 , 为此 , 它需要一个消息中间件 。
文章插图
一、前景摘要
- DES版本:DevEco Studio 3.0 Release
- SDK版本:3.2.2.5 ( API9)
- npm版本:6.14.16
- EMQX:linux(Ubuntu)
- MQTTX:Version: v1.9.2
2、MQTT特性MQTT协议是为大量计算能力有限 , 且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议 , 它具有以下主要的几项特性:
使用发布/订阅消息模式 , 提供一对多的消息发布 , 解除应用程序耦合;
- 对负载内容屏蔽的消息传输 。
- 使用 TCP/IP 提供网络连接 。
- 有三种消息发布服务质量:QoS(定阅等级) , 分0、1、2三个等级 , 简单来说是等级越高越可靠 。
- 小型传输 , 开销很小(固定长度的头部是 2 字节) , 协议交换最小化 , 以降低网络流量 。
- 使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制 。
- 车联网
- 工业互联网
- 智能家居
- 视频直播弹幕
- IM实时聊天(一对一聊天 , 群组聊天)
- 推送服务 , 比如推送实时新闻
- 金融交易数据订阅推送
- MQTT Broker:代理服务器
- Publish:发布者 , 发布消息
- Subscribe:订阅者 , 订阅消息
- Topic:消息的类型 , 订阅者订阅后就会收到该主题的消息内容(payload).
- Payload:消息的内容 , 指订阅者具体要使用的内容 。
- QoS:服务质量.
“至少一次”(QoS1):确保消息到达 , 但消息重复可能会发生 。即是你收到推送后 , 你还得返回一个puback给对方 , 告诉对方收到了 , 不然对方会以为你没收到 , 隔一段时间后重新给你推送 , 直到你给对方返回一个Puback为止 。
“只有一次”(QoS2):确保消息到达一次 。这一级别可用于如下情况 , 在计费系统中 , 消息重复或丢失会导致不正确的结果 。
异常中断的机制使用 Last Will 和 Testament 特性通知有关各方客户端 。
- Last Will:即遗言机制 , 用于通知同一主题下的其他设备发送遗言的设备已经断开了连接 。
- Testament:遗言机制 , 功能类似于Last Will 。
推荐阅读
- 解除Java中的内存溢出问题,保障程序稳定性
- 原来笔记本一直插着电源使用比较好 工作原理3张图秒懂
- 家中为何不能种枣树 院子里最旺宅的果树
- 十大经典牛奶食疗法
- 鸡蛋这样吃最有害健康
- 中医养生让你一直美下去
- 钓草鱼用饵的秘诀,6种鱼饵的不同使用场景
- 《好声音》停播真正原因曝光!其中有两位导师给多少钱也不录了
- 第十八届中国长春电影节开幕 “金鹿奖”10个奖项将揭晓
- 走出校园,迈入职场:如何应对职场中的不公平与挑战?