MQTT
概述
MQTT(Message Queuing Telemetry Transport, 消息队列遥测传输) 由IBM公司于90年代推出的针对移动终端设备的基于TCP/IP 的发布/订阅协议。
MQTT要解决的问题:
-
服务器必须要实现高并发,接受大量客户端的接入
-
单次数据量小,但不能出错
-
必须能够适应高延迟,偶尔断网等通讯不可靠风险
-
根据数据的重要程度和特性,设置不同等级的服务(session)
-
云端设备发送消息,设备端可以在最短的时间接受,并作出响应
MQTT 的特点是保持常链接,具有一定的实时性。适合需要实时控制的场合,尤其适合执行器。低功耗场合不适合MQTT.
MQTT 的特性
-
使用发布/订阅消息模式,解除应用程序耦合
-
三种消息发布服务质量(QoS0,QoS1,QoS2)
-
至多一次,消息发布完全依赖底层的TCP/IP网络,会发生消息丢失或重复,这一级别可用于对数据采集要求不严格的场景QoS0
-
至少一次,确保消息到达,但消息可能会重复发生QoS1
-
只有一次,确保消息只到达一次,这一级别可用于要求严格如涉及计费的系统,消息重复或丢失都是不允许的QoS2
-
MQTT中的三个角色
-
发布者 publisher
-
订阅者 Subscriber
-
代理 Broker
这种结构替代了传统的C/S结构,实现以下解耦:
-
空间解耦 — 发布者和订阅者不需要知道对方
-
时间解耦 — 发布者和订阅者不需要同时运行(离线)
-
同步解耦 — 发布和接收都是异步通讯,无需停止任何处理
MQTT 协议
报文格式:
固定控制报头
剩余数据长度
-
可变长度报头
-
有效数据载荷
软件实现:
原文地址:http://www.cnblogs.com/orange2016/p/16859027.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性