目录

一、MQTT 基本概念
MQTT 是一个轻量级、发布/订阅模式的消息传输协议,设计用于低带宽、不可靠网络环境,非常适合 IoT 设备。
核心组件:
| 组件 | 角色 | 功能 |
| 客户端(Client) | 设备或应用 | 发布消息(Publish)、订阅主题(Subscribe)、接收消息 |
| 代理/服务端(Broker) | 中间服务器 | 接收客户端消息、管理订阅关系、转发消息到目标客户端 |
| 主题(Topic) | 消息路径 | 消息分类标识,用于发布/订阅 |
| 消息(Message) | 数据载体 | 传输的具体信息,带有 QoS、有效负载等 |
注意:MQTT 协议本身不处理消息持久化(视 Broker 实现而定),也不保证消息顺序(除非使用 QoS 1/2)。
二、MQTT 客户端(Client)
客户端功能:
1.连接 Broker 使用 TCP(或 WebSocket)与 Broker 建立连接。
2.身份验证(可选) 支持用户名/密码或证书认证。
3.发布消息(Publish)
-
指定主题(Topic)
-
设置 QoS(0、1、2)
-
可选择保留消息(Retain)
4.订阅主题(Subscribe)
-
监听特定 Topic
-
接收 Broker 转发的消息
-
可以设置 QoS
5.断开连接(Disconnect)
-
释放资源
-
可设置“遗嘱消息”(Last Will Message)
典型客户端示例:
-
IoT 设备端:ESP32、STM32、Arduino
-
移动端:iOS/Android App
-
Web端:JavaScript WebSocket 客户端
-
后端服务:Java、Python、Node.js 客户端
三、MQTT 代理(Broker)
Broker 功能:
1.管理客户端连接
-
维护客户端 ID 和会话状态(Clean Session / Persistent Session)
-
管理在线/离线状态
2.消息路由
-
根据 Topic 转发消息到订阅客户端
-
支持 QoS 消息重传机制
3.持久化和离线消息(可选)
-
持久化订阅
-
离线客户端在下次上线后接收 QoS 1/2 消息
4.安全策略
-
用户认证、ACL 权限控制
-
TLS/SSL 加密
常见 Broker 实现:
| Broker | 特 |

最低0.47元/天 解锁文章
1084

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



