MQTT(Message Queuing Telemetry Transport)是一种基于发布/订阅模式的轻量级消息传输协议,专为带宽有限、网络不稳定的场景设计,是 IoT 领域最主流的通信协议。

核心架构

  • Broker(代理):消息中转服务器,负责接收、过滤和分发消息(如 Mosquitto、EMQX、HiveMQ)
  • Publisher(发布者):向特定 Topic 发送消息的客户端
  • Subscriber(订阅者):订阅感兴趣的 Topic 以接收消息的客户端
  • Topic(主题):消息的分类标识,支持层级结构(如 home/living-room/temperature)和通配符(+ 单层、# 多层)

QoS 级别

级别名称含义
QoS 0At most once最多一次,可能丢失
QoS 1At least once至少一次,可能重复
QoS 2Exactly once恰好一次,最可靠但开销最大

关键特性

  • 极低开销:固定报头仅 2 字节,适合资源受限设备
  • 遗嘱消息(Will):客户端异常断连时自动发布预设消息,用于掉线通知
  • 保留消息(Retain):Broker 保存 Topic 最新一条消息,新订阅者立即获取
  • 持久会话(Clean Session):断线重连后恢复未接收的消息

版本

  • MQTT 3.1.1:目前使用最广泛的版本
  • MQTT 5.0:增加了共享订阅、请求/响应模式、消息过期等特性

典型应用

智能家居设备控制、工业传感器数据上报、车联网消息推送、移动端即时通讯等。