MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种轻量级的、基于发布/订阅(Publish/Subscribe)模型的消息传输协议。它专为在低带宽、高延迟或不稳定的网络环境下,实现计算能力和电量都受限的设备(如传感器、执行器)之间高效、可靠的通信而设计。
1.发布/订阅模型:MQTT的核心在于将消息的发送者(发布者)和接收者(订阅者)完全解耦,通过一个名为 Broker(代理/服务器) 的中央节点来中转消息。

2.核心角色:
l 发布者 (Publisher):产生数据并发送到指定主题的客户端(如温度传感器)。
l 订阅者 (Subscriber):声明对某个主题感兴趣并接收相应消息的客户端(如手机APP)。
l 代理 (Broker):处理客户端连接、接收所有发布的消息并将其路由到匹配的订阅者。
3.主题 (Topic):MQTT通过主题来区分不同的消息流。它使用/作为分隔符,形成层级结构,如 home/livingroom/temperature。
4.主题通配符:
l 单层通配符 (+):匹配一个层级。例如 home/+/temperature 可匹配 home/livingroom/temperature 或 home/bedroom/temperature。
l 多层通配符 (#):匹配多个层级。它必须放在主题的最后,如 home/livingroom/# 可匹配 home/livingroom 下的所有主题。
5.服务质量 (QoS):MQTT定义了三种消息传输质量等级,在可靠性和效率之间提供不同的权衡:
l QoS 0 (最多一次):消息可能丢失,不保证送达。适用于功耗和实时性要求极高的场景,如不断刷新的传感器读数。
l QoS 1 (至少一次):保证消息送达,但可能会重复。适用于非幂等操作不敏感的场景,如接收普通控制指令。
l QoS 2 (恰好一次):保证消息送达且仅送达一次,无重复。适用于要求严苛的场景,如支付交易或关键警报。
6.持久会话 (Persistent Session):当客户端连接时,可以设置 cleanSession 标志为 false,创建一个持久会话。Broker会为离线客户存储所有QoS 1和2的消息,并在其重新连接后转发。
7.遗嘱消息 (Will Message):当客户端非正常断开连接时,Broker会发布一条预先由该客户端设定的遗嘱消息,用于通知其他客户端其状态变化。
部分 | 作用 | 是否必须 | 内容示例 |
固定报头 | 标识报文类型、QoS等级、DUP标志等 | 是 | 指定这是一个PUBLISH报文,QoS=1 |
可变报头 | 提供额外信息 | 否 | PUBLISH报文中包含的主题名 |
有效载荷 | 承载业务数据 | 否 | 发送的传感器数据,如{"temp": 23.5} |

1.建立连接:客户端向Broker发送CONNECT报文,包含认证信息。Broker验证后返回CONNACK报文确认。
2.订阅主题:订阅者发送SUBSCRIBE报文,指明要订阅的主题和期望的QoS等级。
3.发布消息:发布者发送PUBLISH报文到指定主题。
4.Broker路由:Broker收到消息后,查找该主题的所有订阅者,并将PUBLISH报文转发给它们。
5.断开连接:客户端发送DISCONNECT报文,通知Broker主动断开。
1.MQTT 3.1.1:一个极为稳定和成熟的版本,被大量设备和平台广泛支持。

2.MQTT 5.0:在3.1.1基础上大幅增强,引入了许多新特性,旨在满足更复杂的物联网需求。主要新特性包括:
l 用户属性:允许在报文中添加自定义的键值对元数据。
l 主题别名:用整数ID代替较长的主题字符串,降低带宽消耗。
l 增强认证:支持更复杂的质询/响应式认证,提升安全性。
l 共享订阅:允许多个订阅者共享一个订阅,实现客户端间的负载均衡。
MQTT是物联网领域的标杆协议,广泛应用于智能家居、工业物联网、车联网、智慧农业、智慧城市等领域。与其他协议相比:
协议 | 核心模型 | 传输层 | 主要特点与适用场景 |
MQTT | 发布/订阅 | TCP | |
HTTP/HTTPS | 请求/响应 | TCP | |
CoAP | 请求/响应 | UDP | |
AMQP | 队列/路由 | TCP |
六、安全机制
加密传输:支持TLS/SSL加密,确保数据传输的机密性,即MQTTS协议。
身份认证:提供用户名/密码认证,以及基于X.509客户端证书的更强认证机制。
授权控制:Broker可以设置访问控制列表(ACL),精确控制哪些客户端可以发布或订阅哪些主题。
MQTT之所以能成为物联网通信的基石,主要得益于其轻量级的协议设计、灵活的发布/订阅模型、分级可靠的消息传输保障以及全面的安全机制。这些特性使其成为连接海量物联设备、构建高效可靠物联网应用的理想选择。