MQTT-学习笔记01
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 协议
报文格式:
固定控制报头
剩余数据长度
可变长度报头
有效数据载荷
软件实现:
***************用努力照亮现实的梦!***********************
本文来自博客园,作者:逆流的鱼2016,转载请注明原文链接:https://www.cnblogs.com/orange2016/p/16859027.html