目录
一、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 是它不用写代码就能拿到的"设备在线状态机"基础设施。

842

被折叠的 条评论
为什么被折叠?



