評價器與服務器采用`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": "未知指令"
}
```