网络通信:MQTT 与 WebSocket
1. MQTT(Message Queuing Telemetry Transport)
1.1 MQTT 介绍
MQTT 是一种轻量级的发布/订阅(Pub/Sub)协议,适用于低带宽、不稳定网络环境,广泛用于物联网(IoT)设备间的通信。
1.2 MQTT 特点
- 轻量级:低开销,占用带宽小。
- 发布/订阅模式:设备可以订阅主题,服务器(Broker)将消息推送给订阅者。
- QoS 级别:提供三种质量服务(QoS)选项:
- QoS 0:最多传递一次(不确认交付)
- QoS 1:至少传递一次(可能重复)
- QoS 2:确保仅传递一次(最高可靠性)
- 保持会话:支持断线重连。
- 安全性:支持 TLS 加密与用户名/密码认证。
1.3 MQTT 结构
- 客户端(Client):发布或订阅消息的设备。
- 代理(Broker):管理消息传递,如 Eclipse Mosquitto、EMQX。
- 主题(Topic):消息的分类标识。
1.4 MQTT 使用场景
- 物联网(IoT)设备通信
- 远程监控系统(智能家居、工业设备)
- 车联网(V2X)
2. WebSocket
2.1 WebSocket 介绍
WebSocket 是一种全双工通信协议,允许服务器和客户端在单个 TCP 连接上进行实时通信,减少延迟,提升效率。
2.2 WebSocket 特点
- 全双工通信:客户端和服务器可随时发送数据。
- 低延迟:减少 HTTP 请求,保持长连接。
- 事件驱动:适用于实时应用,如聊天、游戏、监控系统。
- 轻量协议:相比 HTTP 轮询,更高效。
2.3 WebSocket 结构
- 握手阶段:使用 HTTP 进行初始连接,随后升级为 WebSocket。
- 数据传输:基于帧(frame)进行通信。
- 断开连接:支持客户端、服务器主动关闭。
2.4 WebSocket 使用场景
- 实时聊天(IM)
- 在线游戏
- 实时数据流(股票、天气)
- 远程控制(IoT 设备管理)
3. MQTT 与 WebSocket 对比
特性 | MQTT | WebSocket |
---|---|---|
通信方式 | 发布/订阅 | 客户端-服务器 |
连接方式 | 需要 Broker | 直接连接 |
传输协议 |