目录
设备到云端、云端到设备通信的 TCP 协议设计,适用于 ESP32 设备与云端进行直连通信的自定义协议场景(非 MQTT/非 HTTP/WebSocket,纯 TCP Socket 连接,适用于内网/专网/局域网或需要极低延迟和带宽占用的 IoT 应用)。
一、通信总览
项目 | 说明 |
连接方式 | 双向长连接,基于 TCP 协议 |
传输方向 | 设备 ⇆ 云端(Server) |
通信模型 | 云端为 TCP Server,设备为 Client |
通信端口 | 自定义,如 9000 |
编码格式 | 自定义二进制协议 或 JSON 文本 |
保活机制 | 心跳包 + 超时断开机制 |
重连机制 | 设备端检测断线自动重连 |
二、协议结构设计(推荐二进制格式)
使用 定长头 + 变长体 的结构,效率高、易于解析。
-
消息结构格式
字段 | 长度(字节) | 说明 |
Magic Header | 2 | 固定为 0xAA55 标识起始位 |
Msg Type | 1 | 消息类型标识(如 0x01 状态上报) |
Device ID | 4 | 设备编号(uint32) |
Payload Len | 2 | 数据长度(N) |
Payload | N | 实际数据(JSON或二进制) |
CRC16 | 2 | 整体校验(可选) |
示例结构:
| AA 55 | 01 | 00 00 00 01 | 00 10 | {...JSON数据...} | CRC |
三、常见消息类型定义(MsgType)
类型名称 | 十六进制标识 | 方向 | 说明 |
心跳包 | 0x00 | 双向 | 保活,无实际数据< |