MQTT通讯协议详解:核心原理与工作机制
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种轻量级、基于发布/订阅模式的消息传输协议,专为低带宽、高延迟、不稳定网络环境下的物联网设备通信设计。它由IBM于1999年发布,目前主流版本为3.1.1,最新版本为5.0(2019年发布)。
一、核心概念与组件
1. 三大核心角色
| 角色 | 功能 | 示例 |
|---|---|---|
| 客户端(Client) | 发起连接、发布消息、订阅主题、接收消息 | 传感器、手机APP、PLC、嵌入式设备 |
| 代理服务器(Broker) | 消息路由中心,接收、过滤、转发消息 | EMQX、Mosquitto、AWS IoT、Azure IoT Hub |
| 发布者(Publisher) | 向Broker发布消息的客户端 | 温度传感器发布环境数据 |
| 订阅者(Subscriber) | 向Broker订阅主题的客户端 | 手机APP接收智能家居状态更新 |
关键特性:发布者和订阅者完全解耦,无需知道对方存在,仅通过主题(Topic)和Broker进行交互。
2. 核心通信模型:发布/订阅模式(Pub/Sub)
MQTT摒弃了传统的点对点通信模式,采用更灵活的发布/订阅模型:
- 发布者将消息发送到Broker指定主题,无需等待响应
- 订阅者向Broker订阅感兴趣的主题,无需知道消息来源
- Broker负责将消息准确分发给所有订阅该主题的客户端
- 支持一对多和多对多通信,极大降低系统耦合度
二、通讯原理:完整工作流程
1. 连接建立流程
MQTT基于TCP/IP协议(或WebSocket),必须先建立可靠的网络连接。
