|
4 | 4 |
|
5 | 5 | ## 一、包头
|
6 | 6 |
|
7 |
| -### 固定头 4字节 |
| 7 | +### 固定头 8字节 |
8 | 8 |
|
9 |
| -| 标识 | 长度(位) | 说明 | |
10 |
| -|------|-------|-------| |
11 |
| -| 魔术字 | 24 | “rpc” | |
12 |
| -| 包含数据 | 1 | 0/1 | |
13 |
| -| 数据结束 | 1 | 0/1 | |
14 |
| -| 数据格式 | 2 | 0-3 | |
15 |
| -| 包类型 | 3 | 0-7 | |
| 9 | +| 标识 | 长度(位) | 说明 | |
| 10 | +|--------|-------|------------| |
| 11 | +| 魔术字 | 24 | “rpc” | |
| 12 | +| 包类型 | 4 | 0-15 | |
| 13 | +| 数据格式 | 4 | 0-15 | |
| 14 | +| 事务/流ID | 16 | 0-65535,自增 | |
| 15 | +| 包体数据长度 | 16 | 0-64KB | |
16 | 16 |
|
17 |
| -### 扩展头 4字节 |
18 |
| - |
19 |
| -| 标识 | 长度(位) | 说明 | |
20 |
| -|------|-------|---------| |
21 |
| -| 序号 | 16 | 0-65535 | |
22 |
| -| 数据长度 | 16 | 0-64KB | |
23 | 17 |
|
24 | 18 | ### 包类型
|
25 | 19 |
|
26 |
| -| 类型 | id | 扩展头 | 方向 | 说明 | |
27 |
| -|-------------|----|-----|----|------| |
28 |
| -| - | 0 | | | 无效 | |
29 |
| -| CONNECT | 1 | Y | 上行 | 连接 | |
30 |
| -| CONNECT_ACK | 2 | Y | 下行 | 连接响应 | |
31 |
| -| HEARTBEAT | 3 | | 上行 | 心跳 | |
32 |
| -| REQUEST | 4 | Y | 双向 | 请求 | |
33 |
| -| RESPONSE | 5 | Y | 双向 | 响应 | |
34 |
| -| STREAM | 6 | Y | 双向 | 数据流 | |
35 |
| -| DISCONNECT | 7 | Y/N | 双向 | 关闭连接 | |
| 20 | +| id | 类型 | 方向 | 说明 | |
| 21 | +|----|---------------|----|-------| |
| 22 | +| 0 | DISCONNECT | 双向 | 关闭连接 | |
| 23 | +| 1 | CONNECT | 上行 | 连接 | |
| 24 | +| 2 | CONNECT_ACK | 下行 | 连接响应 | |
| 25 | +| 3 | HEARTBEAT | 上行 | 心跳 | |
| 26 | +| 4 | REQUEST | 双向 | 请求 | |
| 27 | +| 5 | REQUEST_END | 双向 | 请求结束 | |
| 28 | +| 6 | RESPONSE | 双向 | 响应 | |
| 29 | +| 7 | RESPONSE_END | 双向 | 响应结束 | |
| 30 | +| 8 | STREAM | 双向 | 数据流 | |
| 31 | +| 9 | STREAM_END | 双向 | 数据流结束 | |
| 32 | +| 10 | PUBLISH | 双向 | 发布 | |
| 33 | +| 11 | PUBLISH_END | 双向 | 发布结束 | |
| 34 | +| 12 | PUBLISH_ACK | 双向 | 发布响应 | |
| 35 | +| 13 | SUBSCRIBE | 上行 | 订阅 | |
| 36 | +| 14 | SUBSCRIBE_ACK | 下行 | 订阅响应 | |
| 37 | +| 15 | UNSUBSCRIBE | 上行 | 取消订阅 | |
36 | 38 |
|
37 | 39 | ### 数据格式
|
38 | 40 |
|
39 |
| -| 类型 | id | 说明 | |
40 |
| -|-------------|----|------------| |
41 |
| -| Binary | 0 | 默认二进制 | |
42 |
| -| JSON | 1 | | |
43 |
| -| YAML | 2 | | |
44 |
| -| MessagePack | 3 | | |
| 41 | +| id | 类型 | 说明 | |
| 42 | +|------|----------|------------| |
| 43 | +| 0 | binary | 默认二进制 | |
| 44 | +| 1 | json | 通用性强 | |
| 45 | +| 2 | xml | | |
| 46 | +| 3 | yaml | 较JSON省流,清晰 | |
| 47 | +| 4 | csv | | |
| 48 | +| 5 | msgpack | 省流,高性能 | |
| 49 | +| 6 | protobuf | | |
| 50 | +| 7-15 | custom | 自定义 | |
45 | 51 |
|
46 | 52 | 数据格式建议使用默认的json格式,方便开发和调试,对于需要省流的场景,可以改进为msgpack或二进制
|
47 | 53 |
|
|
68 | 74 | }
|
69 | 75 | ```
|
70 | 76 |
|
71 |
| -### CONNACK 连接响应 |
| 77 | +### CONNECT_ACK 连接响应 |
72 | 78 |
|
73 | 79 | ```json5
|
74 | 80 | {
|
|
87 | 93 |
|
88 | 94 | 流ID,客户端发起用奇数,服务端发起用偶数
|
89 | 95 |
|
| 96 | +### STREAM_END 数据流结束 |
| 97 | +内容为二进制 |
90 | 98 |
|
91 | 99 | ### REQUEST 请求
|
92 | 100 |
|
|
124 | 132 | - [设备](protocol_device.md)
|
125 | 133 | - [OTA升级](protocol_ota.md)
|
126 | 134 | - [文件系统](protocol_fs.md)
|
| 135 | +- [摄像头](protocol_camera.md) |
0 commit comments