评价器与服务器采用`WebSocket`协议进行通讯,通讯数据内容使用`json`格式来编码。
## 数据字段
| 字段 | 文字 |
| --- | --- |
| code | 指令码,不同的指令码对应不同的操作指令 |
| state | 状态码,`0`代表失败,`1`代表成功 |
| msg | 消息文字 |
| data | 数据内容 |
## 评价器登录
评价器连接上服务器后,服务器会提示输入工号
```json
{
"code": 40001,
"state": 0,
"msg": "请发送工号"
}
```
这时候需要发送工号`work_no`和通讯密钥`key`给服务器
```json
{
"code": 40001,
"data": {
"work_no": "10086",
"key": "123456"
}
}
```
如果登录成功,服务器会返回
```json
{
"code": 40001,
"state": 1,
"msg": "登录成功"
}
```
如果登录失败,服务器会返回
```json
{
"code": 40001,
"state": 0,
"msg": "通讯密钥错误"
}
```
## 心跳包
评价器登录成功后,需要定时向服务器发送心跳包,以维持在线状态。
评价器可以每隔60秒往服务器发送心跳包
> `data`字段的内容为时间戳
```json
{
"code": 40000,
"data": 1603780630492
}
```
服务器收到心跳包后,会返回
```json
{
"code": 40000,
"state": 1,
"msg": "收到",
"data": 1603780718130
}
```
## 打开评价页
服务器接收到业务系统的消息后,会处理消息内的数据,然后生成对应的评价链接推送给评价器
```json
{
"code": 50100,
"state": 1,
"data": "https:\/\/hk.ll00.cn\/frame.php",
"msg": "打开网址"
}
```
评价器收到指令后,发出评价提示音并打开调用`webview`组件打开消息内`data`字段的`省办件事项评价页`链接,让办事群众点击页面内的评价选项进行评价。
## 其它
如果服务器接收到无法处理的数据包时,服务器会返回
```json
{
"code": 40002,
"state": 0,
"msg": "数据包格式错误"
}
```
如果服务器接收到未知的指令时,服务器会返回
```json
{
"code": 50000,
"state": 0,
"msg": "未知指令"
}
```