目录
MQTT(Message Queuing Telemetry Transport)是一种基于发布/订阅模型的轻量级消息传输协议,常用于物联网(IoT)场景中。它设计简洁、带宽占用少,非常适合资源受限的设备和网络环境。
一、MQ协议
MQTT 特点
-
轻量级协议:
- 设计简单,占用带宽少,特别适合嵌入式设备和不稳定的网络环境。
-
发布/订阅模型:
- 客户端通过主题(Topic)发布消息,订阅者通过主题接收消息,彼此不直接通信。
-
可靠性保障:
- 提供三种服务质量(QoS)等级,确保消息可靠传输:
- QoS 0:至多一次(不确认,可能丢失)。
- QoS 1:至少一次(需要确认,但可能重复)。
- QoS 2:仅一次(确保消息不丢失且不重复)。
- 提供三种服务质量(QoS)等级,确保消息可靠传输:
-
持续连接:
- 使用 TCP/IP 连接,通过心跳包(Keep-Alive)保持连接稳定。
-
支持离线消息:
- 使用“保留消息”和“持久会话”功能,实现离线设备接收消息。
-
安全性:
- 支持 SSL/TLS 加密,结合用户名和密码进行身份验证。
MQTT 工作原理
-
连接:
- 客户端通过
CONNECT
消息向服务器建立连接,服务器返回CONNACK
消息。
- 客户端通过
-
发布:
- 客户端通过
PUBLISH
消息向服务器发布消息,指定消息的主题。
- 客户端通过
-
订阅:
- 客户端通过
SUBSCRIBE
消息订阅一个或多个主题,服务器将匹配主题的消息推送给客户端。
- 客户端通过
-
心跳:
- 客户端和服务器定期发送心跳包(PINGREQ 和 PINGRESP),确保连接有效。
-
断开:
- 客户端通过
DISCONNECT
消息通知服务器主动断开连接。
- 客户端通过
MQTT 主要应用场景
-
物联网(IoT):
- 设备状态监控、数据收集和远程控制。
-
智能家居:
- 控制家电、监控传感器数据。
-
车联网:
- 实时车辆数据传输、位置追踪。
-
移动应用:
- 消息推送、实时聊天。