1 / 32
MQTT 介绍,服务器(EMQ X)搭建,客户端(mqtt-spy,安卓)使用,
java 编程示例
2022 年 8 月 25 日星期四·席锦
1. MQTT 简介
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一个轻量的发布/
订阅模式消息传输协议,是专门针对低带宽和不稳定网络环境的物联网应用设计的。
1.1. MQTT 协议主要特性
MQTT 协议工作在低带宽、不可靠的网络远程传感器和控制设备通讯而设计的协议,它具有
一些主要特性:
1.开放消息协议,简单实现
2.使用发布/订阅模式,提供一对多的消息发布,解除应用程序耦合
3.对负载(协议携带的应用数据)内容屏蔽的消息传输
4.基于 TCP/IP 网络连接,提供有序、无损的双向连接
主流的 MQTT 是基于 TCP 连接进行数据推送的,但是同样有基于 UDP 的版本,叫做 MQTT—SN。
这两种版本由于基于不同的连接方式,优缺点自然也就各有不同了
5.消息服务质量(Qos)支持,可靠传输保证:有三种发布服务质量
QoS0:“至多一次”,消息发布完全依赖底层 TCP/IP‘网络。会发生消息丢失或重复。这一
级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久还会有第二次发
送,这种方式主要普通的 APP 的推送,倘若您的智能设备在消息推送未联网,推送过去没收
到,再次联网也就收不到了
QoS1:“至少一次”,确保消息到达,但消息重复可能会发生
QoS2:“只有一次”,确保消息到达一次。在一些重要比较严格的计费系统中,可以使用此级
别,在计费系统中,消息重复或丢失导致不正确的结果,这种最高质量的消息发布服务还可
以用于即时通讯类的 APP 的推送,确保用于只会收到一次
6.1 字节固定报头,2 字节心跳报文,最小传输开销和协议交换,有效减少网络流量
这就是为什么在介绍里说他非常适合“在物联网领域,传感器与服务器的通信,信息的收集,
要知道嵌入式设备的运算能力和带宽都相对薄弱”,使用这种协议来传递消息在适合不过了
7.在线状态感知:使用 Last Will 和 Testament 特性和通知有关各方客户端异常终端的机制
Last Will:遗言机制,用于通知同一主题下的其他设备,发送遗言的设备已经断开了连接
Testament: 遗嘱机制,功能类似于 Last Will
评论0