WebSocket对接
云端控制,可满足企业对设备的批量管理
如:批量启动小程序,批量停止,自定义指令等.
- 什么是WebSocket方式对接?
AScript App 启动后内置了websocket通道,可连接自定义的任意WebSocketServer.
连接后,服务器可发送对应指令,来控制设备各种行为操作
App连接云控
将设备连接至AirScript 云控服务器.
-
如何连接?
-
- 在首页,点击第4个状态按钮,即可打开云控连接弹窗,并选择自定义云控.
-
- 输入您自己的websocket-server 地址
如图所示:
指令
指令结构
所有发送指令均为json
格式字符串
其中path字段为指令字段. 不同的命令path字段的值是不一样的.
当发送命令后会接收到一条相同path字段的回执消息**
# 发送的指令
{
"path":"消息指令",
//其他指令字段,见下面文档
}
# 收到回执消息
{
"path":"消息指令",
"code":1,
"msg":"",
"device_id":"xx"
//其他属性字段,见下面文档
}
- 属性解释
参数 | 备注 |
---|---|
path | 发送的指令,发送什么就回执什么 |
code | 消息的执行状态,1:执行成功,其他:执行失败 |
msg | 成功为success,其他为失败原因 |
device_id | 设备id,每条回执消息都会返回设备id |
当连接成功后
当连接成功后会收到服务器发送来的设备状态消息
- 消息案例:
{
"msg":"success",
"result":{"device_version":"3173","device_name":"XiaomiM2007J17C","app_is_run":false,"app_is_line":false,"app_id":"","username":"ws://192.168.31.18:8001"},
"path":"device_info",
"code":1,
"device_id":"f6c95072-8446-47d2-af2e-b787a094b644"
}
- 属性:
参数 | 必须 | 备注 |
---|---|---|
path | 必须 | "device_info" 设备状态的消息指令 |
msg | 必须 | 命令的执行状态消息 success为成功,其他为失败原因 |
code | 必须 | 1 为成功, 其他值为失败 |
device_id | 必须 | 设备id |
result | 必须 | device_version: app版本,device_name:设备名称,app_is_run:小程序是否运行中,app_is_line:运行的小程序是否为线上程序,app_id:运行的小程序id,username:云控开发者名称 |
启动在线小程序
- 请求消息:
{
"path":"app_run",
"id":"14",
"params":{"params1":"v"},
"card":"xxx"
}
- 属性:
参数 | 必须 | 备注 |
---|---|---|
path | 必须 | "app_run" 启动程序的指令 |
id | 必须 | 小程序id |
params | 否 | 初始化的小程序参数 |
card | 否 | 激活码,仅针对收费的小程序有效 |
- 回执消息
{"msg":"success","path":"app_run","code":1,"device_id":"f6c95072-8446-47d2-af2e-b787a094b644"}
停止小程序
- 请求消息:
{"path":"app_stop"}
- 回执消息
{"msg":"","path":"app_stop","code":-1,"device_id":"f6c95072-8446-47d2-af2e-b787a094b644"}
获取设备信息
- 请求消息:
{"path":"device_info"}
- 回执消息
{
"msg":"success",
"result":{"device_version":"3173","device_name":"XiaomiM2007J17C","app_is_run":false,"app_is_line":false,"app_id":"","username":"ws://192.168.31.18:8001"},
"path":"device_info",
"code":1,
"device_id":"f6c95072-8446-47d2-af2e-b787a094b644"
}
- 属性:
参数 | 必须 | 备注 |
---|---|---|
path | 必须 | "device_info" 设备状态的消息指令 |
msg | 必须 | 命令的执行状态消息 success为成功,其他为失败原因 |
code | 必须 | 1 为成功, 其他值为失败 |
device_id | 必须 | 设备id |
result | 必须 | device_version: app版本,device_name:设备名称 app_is_run:小程序是否运行中, app_is_line:运行的小程序是否为线上程序, app_id:运行的小程序id,username:云控开发者名称 |
获取设备截图
- 请求消息:
{"path":"screen_shot","max":300,"quality":20}
- 回执消息
{
"msg":"success",
"result":{"s_size":[1088,2400],"image":"/9j/4AAQSkZ...","r_size":[136,300],"scale":true},
"path":"screen_shot",
"code":1,
"device_id":"f6c95072-8446-47d2-af2e-b787a094b644",
"max":300.0,
"quality":50.0
}
- 属性:
参数 | 必须 | 备注 |
---|---|---|
path | 必须 | "screen_shot" 截图指令 |
max | 必须 | 缩放最大边长,建议缩放.否则会非常慢.占用带宽 |
quality | 必须 | 图片清晰度 10-100, 20:百分之20%的清晰度. 建议20即可,否则占用带宽 |
result | 回执结果 | s_size: 原始图大小,image:图片base64数据,r_size:缩放后的尺寸,scale:是否缩放了 |
点击设备坐标
- 请求消息:
{"path":"device_action","action":"click","x":50,"y":10}
- 回执消息
{"msg":"success","path":"device_action","code":1,"device_id":"f6c95072-8446-47d2-af2e-b787a094b644","x":50.0,"action":"click","y":10.0}
- 属性:
参数 | 必须 | 备注 |
---|---|---|
path | 必须 | "device_action" 动作指令 |
action | 必须 | "click" 点击指令 |
x | 必须 | 点击坐标x |
y | 必须 | 点击坐标y |
滑动
- 请求消息:
{"path":"device_action","action":"swipe","ori":"left"}
- 回执消息
{"msg":"success","path":"device_action","code":1,"device_id":"f6c95072-8446-47d2-af2e-b787a094b644","action":"swipe","ori":"left"}
- 属性:
参数 | 必须 | 备注 |
---|---|---|
path | 必须 | "device_action" 滑动指令 |
action | 必须 | "swipe"滑动 |
ori | 必须 | left:左滑,top:上滑,right:右滑,bottom:下滑 |
发送按键
- 请求消息:
{"path":"device_action","action":"key","ori":"home"}
- 回执消息
{"msg":"success","path":"device_action","code":1,"device_id":"f6c95072-8446-47d2-af2e-b787a094b644","ori":"home","action":"key"}
- 属性:
参数 | 必须 | 备注 |
---|---|---|
path | 必须 | "device_action" 滑动指令 |
action | 必须 | "key"发送按键 |
ori | 必须 | "home":模拟home按键,"back":模拟回退按键 |