MQTT(Message Queuing Telemetry Transport)是一种基于发布/订阅模式的轻量级消息传输协议,专为带宽有限、网络不稳定的场景设计,是 IoT 领域最主流的通信协议。
核心架构
- Broker(代理):消息中转服务器,负责接收、过滤和分发消息(如 Mosquitto、EMQX、HiveMQ)
- Publisher(发布者):向特定 Topic 发送消息的客户端
- Subscriber(订阅者):订阅感兴趣的 Topic 以接收消息的客户端
- Topic(主题):消息的分类标识,支持层级结构(如
home/living-room/temperature)和通配符(+单层、#多层)
QoS 级别
| 级别 | 名称 | 含义 |
|---|---|---|
| QoS 0 | At most once | 最多一次,可能丢失 |
| QoS 1 | At least once | 至少一次,可能重复 |
| QoS 2 | Exactly once | 恰好一次,最可靠但开销最大 |
关键特性
- 极低开销:固定报头仅 2 字节,适合资源受限设备
- 遗嘱消息(Will):客户端异常断连时自动发布预设消息,用于掉线通知
- 保留消息(Retain):Broker 保存 Topic 最新一条消息,新订阅者立即获取
- 持久会话(Clean Session):断线重连后恢复未接收的消息
版本
- MQTT 3.1.1:目前使用最广泛的版本
- MQTT 5.0:增加了共享订阅、请求/响应模式、消息过期等特性
典型应用
智能家居设备控制、工业传感器数据上报、车联网消息推送、移动端即时通讯等。