【KWDB 创作者计划】_上位机知识篇---MQTT协议
文章目录
- 前言
- 一、基本概念
- 1. 协议特点
- 轻量级
- 基于发布/订阅模型
- 支持QoS等级
- 低功耗
- 支持持久会话
- 2. 主要组件
- Broker
- Publisher(发布者)
- Subscriber(订阅者)
- Topic(主题)
- 二、协议细节
- 1. 连接建立
- 2. 主题(Topic)
- 分层结构
- 支持两种通配符
- +(单级通配符)
- #(多级统配符)
- 3. QoS级别
- 三、协议报文
- 客户端请求连接
- 连接确认
- 发布信息
- QoS 1消息确认
- QoS 2消息接收确认
- QoS 2消息释放
- QoS 2消息完成
- 订阅请求
- 订阅确认
- 取消订阅
- 取消订阅确认
- 心跳请求
- 心跳响应
- 断开连接
- 三、应用场景
- 1. 物联网(IoT)设备通信
- 2. 传感器数据采集
- 3. 智能家居控制
- 4. 移动应用
- 5. 推送通知
- 6. 实时消息
- 7. M2M通信
- 8. 设备间直接通信
- 9. 远程监控
- 10. 工业设备监控
- 11. 环境监测
- 四、安全机制
- 基础认证
- TLS/SSL加密
- 客户端证书
- 主题权限控制
- 五、常见实现
- Broker实现:
- 客户端库:
- 六、版本演进
- MQTT 3.1
- MQTT 3.1.1
- MQTT 5.0
- 七、原因码
前言
MQTT (Message Queuing Telemetry Transport) 是一种轻量级的发布/订阅消息传输协议,专为低带宽、高延迟或不稳定的网络环境设计。
一、基本概念
1. 协议特点
轻量级
轻量级:协议头最小只有2字节
基于发布/订阅模型
基于发布/订阅模型:解耦消息生产者和消费者
支持QoS等级
支持QoS等级:提供三种消息传递质量保证级别
低功耗
低功耗:适合物联网设备
支持持久会话
支持持久会话:可恢复通信状态
2. 主要组件
Broker
Broker(代理服务器):消息中转站,负责接收、过滤和转发消息
Publisher(发布者)
Publisher(发布者):发送消息的客户端
Subscriber(订阅者)
Subscriber(订阅者):接收消息的客户端
Topic(主题)
Topic(主题):消息的分类标识,采用分层结构(如home/livingroom/temperature)
二、协议细节
1. 连接建立
MQTT连接通过CONNECT/CONNACK报文对建立:
客户端发送CONNECT报文,包含:
1.Client ID(客户端标识)
2.Clean Session标志(是否清除之前会话)
3.可选的用户名/密码
4.Keep Alive时间(心跳间隔)
5.服务端响应CONNACK报文,包含连接状态
2. 主题(Topic)
分层结构
分层结构,用"/"分隔(如home/