目录
-
- [一、MQTT 简介](#一、MQTT 简介)
-
- [1.1 Body:MQTT 的 Topic 协议规定的语法规则](#1.1 Body:MQTT 的 Topic 协议规定的语法规则)
- [二、MQTT 比起其它消息服务协议的关键协议特性](#二、MQTT 比起其它消息服务协议的关键协议特性)
-
- [2.1 保留消息 Retained](#2.1 保留消息 Retained)
- [2.2 遗嘱消息 LWT](#2.2 遗嘱消息 LWT)
- [2.3 三大 QoS ------ 消息可靠性,协议原生定义](#2.3 三大 QoS —— 消息可靠性,协议原生定义)
- 三、一句话总结
一、MQTT 简介
MQTT(Message‑Queuing Telemetry Transport),轻量二进制发布‑订阅 (Pub/Sub) 消息协议,专为物联网、弱网设备设计,运行在 TCP 之上,也支持 WebSocket 封装用于浏览器。
现在标准由 OASIS 维护;主流版本:
- MQTT 3.1.1
- MQTT 5.0
1.1 Body:MQTT 的 Topic 协议规定的语法规则
| 语法 | 含义 |
|---|---|
/ |
层级分隔 |
+ |
单级通配 |
# |
多级通配,必须放在末尾 |
$ 开头 |
系统 topic,# 不匹配 |
| 通配符 | 只能用于订阅,不能发布 |
二、MQTT 比起其它消息服务协议的关键协议特性
2.1 保留消息 Retained
publish消息标记retain=1,Broker 保存该 topic 最新一条- 新订阅者订阅瞬间立刻拿到这条消息
- 适合设备状态、仪表盘快照
经常搭配 LWT 遗嘱消息,实现设备上下线快照。
2.2 遗嘱消息 LWT
CONNECT建连接的时候预先注册- 异常掉线时 Broker 自动发送
- 正常
DISCONNECT退出不会发送
经常搭配 Retain 保留消息,实现设备上下线快照。
2.3 三大 QoS ------ 消息可靠性,协议原生定义
| QoS | 名称 | 行为 | 适用场景 |
|---|---|---|---|
| QoS 0 | 最多一次 | 发完就丢,不确认;消息可能丢失 | 传感器高频上报,丢一条无所谓 |
| QoS 1 | 至少一次 | 保证收到,可能重复收到 | 设备状态上报,允许重复 |
| QoS 2 | 恰好一次 | 握手流程,保证只收到一次,开销最大 | 计费、控制指令,不允许重复 |
三、一句话总结
MQTT = 弱网 + 海量设备 + 双向实时 + 状态快照需求 的默认答案;Retained / LWT / QoS 是它不用写代码就能拿到的"设备在线状态机"基础设施。