This commit is contained in:
anlicheng 2023-12-22 15:09:41 +08:00
parent af83193e36
commit 2da8a40ac2
2 changed files with 45 additions and 11 deletions

View File

@ -40,9 +40,14 @@
%%
-define(PACKET_REQUEST, 16#01).
-define(PACKET_RESPONSE, 16#02).
%%
-define(PACKET_PUBLISH, 16#03).
-define(PACKET_PUBLISH_RESPONSE, 16#04).
%%
-define(PACKET_COMMAND, 16#05).
-define(PACKET_COMMAND_RESPONSE, 16#06).
%%
-define(EVENT_DEVICE, 16#01).
%%

View File

@ -1,11 +1,15 @@
# websocket通讯格式逻辑说明
## 消息体有四种格式
## 消息体以下格式
1. 主机发送的请求 (0x01)
2. 服务端对主机请求的响应 (0x02)
3. 服务端对主机的消息推送 (0x03)
4. 主机对服务器推送消息的响应 (0x04)
5. 服务器端对主机推送的指令 (0x05)
5. 主机对服务器推送的指令的响应 (0x06)
## 消息体的格式说明
<<消息体类型/1byte, PacketId/4byte, Packet/任意长度>>
@ -43,7 +47,7 @@ Reply: {a: bool, aes: "服务器生成的aes的值"}
PacketId: 4字节整数, 值为0;
Body:
```json:
```text
{
"service_name": "从该设备端的哪个服务采集的数据",
// 如果为空,就表明是微服务产生的数据,如果有值,表示是设备产生的数据
@ -69,14 +73,14 @@ Body:
// todo 在insert数据到influxdb的时候需要增加service_name + host_uuid
}
```
```
### ping数据上传(无响应)
<<0x01, PacketId:4, 0x03, Body:任意长度>>
PacketId: 4字节整数, 值为0;
Body:
```json
```text
{
// 硬件信息目前有剩余内存剩余磁盘和cpu负载
// 剩余内存单位为mb
@ -113,14 +117,14 @@ Body:
}
]
}
```
```
### inform数据上传(无响应)
<<0x01, PacketId:4, 0x04, Body:任意长度>>
PacketId: 4字节整数, 值为0;
Body:
```json
```text
{
"at": $int64,
// 微服务信息
@ -133,14 +137,14 @@ Body:
"status": 0|1
}]
}
```
```
### feedback_step数据上传(无响应)
<<0x01, PacketId:4, 0x05, Body:任意长度>>
PacketId: 4字节整数, 值为0;
Body:
```json
```text
{
"task_id": "任务的task id",
// sc为step code具体地
@ -152,14 +156,15 @@ Body:
// 5代表任务已经完成微服务已经处理完成。
"code": $int
}
```
```
### feedback_result数据上传(无响应)
<<0x01, PacketId:4, 0x06, Body:任意长度>>
PacketId: 4字节整数, 值为0;
Body:
```json
```text
{
"task_id": "任务id",
// unix nano类型
@ -171,7 +176,7 @@ Body:
// 返回任务类型1表示任务是微服务下发0代表是命令下发
"type": 0 | 1,
}
```
```
### 主机上传终端设备的相关事件
<<0x01, PacketId:4, 0x07, Body:任意长度>>
@ -226,3 +231,27 @@ Body: 事件内容AES加密
```
## 指令说明
### 服务器对主机推送的指令格式
<<0x05, PacketId:4, Body:任意长度>>
PacketId: 4字节整数; 如果值为0则不需要返回指令执行结果
Body: 事件内容AES加密
#### 计费电表, 下发指令
```text
{
"device_uuid": "xxxxxx", // 设备的device_uuid, 数组格式
"version": "1.0",
"command_type": 0x01, // 中电计费电表控制
"command": {
"type": "ctrl", // 遥控
"stype": int, // 遥控类型0: 遥控, 1: 遥调, 2: 置数
"ctype": int, // 遥控动作, 0: 打开1: 闭合
"value": double, // 控制参数
"timestamp": 17031000000 // 发命令时间
}
}