选取 MQTT Broker 版本官方版本文档: https://docs.emqx.io/broker/latest/cn/ MQTT 简介: https://www.runoob.com/w3cnote/mqtt-intro.html mqtt demo旨在记录自己的技术成长,帮助更多有需求的用户实现快速开发入门 无任何附加,最终解释权归博主所有.
设计: 1.精简,不添加可有可无的功能 2.发布/订阅(Pub/Sub)模式,方便消息在传感器之间传递 3.允许用户动态创建主题,零运维成本 4.把传输量降到最低以提高传输效率 5.把低宽带,高延迟,不稳定的网络等因素考虑在内 6.支持连续的会话控制 7.理解客户端计算能力可能很低 8.提供服务质量管理 9.假设数据不可知,不强求传输数据的类型与格式,保持灵活性
特性介绍: 1.使用发布/订阅消息模式,提供一对多的消息发布,应用解耦 2.对负载内容屏蔽的消息传输 3.TCP/IP网络连接(主流的是基于TCP连接进行数据推送,还有基于UDP版本,叫做[MQTT-SN],基于不同的方式,各有优缺) 4.三种消息发布服务质量(qos) "至少一次": 确保消息到达,但消息重复会发生,需要做幂等处理,账单/设备/用户记录等等 "只有一次": 确保消息一定收到,消息丢失/重复都不接受,但相应的会有额外的系统开销 "至多一次": 接收端不会发送回执消息,发送者也不会重试,消息可能丢失,通常用在系统日志传递 5.小型传输,开销小(固定长度的头部是2字节),协议交换最小化,降低网络流量 6.遗言(Last Will)和Testament特性通知客户端异常中断链接
MQTT实现方式: 实现MQTT协议需要客户端和服务端通讯完成,通讯过程中, MQTT协议中有三种身份:发布者(Publish),代理(Broker),(服务器),订阅者(Subscibe), MQTT传输消息分为两部分: 主题(Topic) / 负载(payload) 1.Topic,订阅者订阅(Subscibe)后,会收到该主题的消息内容(payload) 2.payload,消息的内容,指代订阅者具体要使用的内容 网络传输/应用消息 MQTT会构建底层网络传输: 它将建立客户端到服务端的链接,提供两者之间的一个有序的,无损的,基于字节流的双向传输. 当应用数据通过MQTT网络发送时,MQTT会把与之相关的服务质量(QoS)和主题名(Topic)相关联.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。