//初始化方法
function recordInit(scriptName){
//let ipInfoJson = getIP()
// let ip = ipInfoJson.cip
// let location = ipInfoJson.cname
let deviceIMEI = '',deviceBrand='',deviceModel='',AndroidVer='',deviceWH='',deviceBoard='',deviceMac='',AndroidId=''
try {
deviceBrand = device.brand;//制造厂商
deviceBoard = device.board;//主板
deviceMac = device.getMacAddress()//Mac地址
AndroidId = device.getAndroidId()//安卓ID
data={
"category":1,
"uuid":"55421",
"device\_code":"086",
"configure":"5656E",
"owner":"1",
"model":device.model,
"release": device.release,
"memory":~~(device.getAvailMem()/1024/1024)+'MB',
"imei":device.getIMEI(),
"width":device.width,
"height":device.height,
"battery":device.getBattery()
}
var token=setting.storage.get('access\_token')
var res = http.postJson(setting.api\_domain+'device/?access-token='+token,data);
if(res.statusCode==200){
log('已添加')
return true
}
else if(res.statusCode==201){
log("已更新")
return true
}else{
log("添加设备失败")
return false
}
} catch (error) {
log(error)
return false;
}
}
var ws = {
run:function(){
setting.ws_status =true;
console.log('使用软件的过程中,请确保您的网络流畅~')
console.log('Websocket连接中..')
setting.ws = web.newWebSocket(setting.websocket_domain, {
//eventThread: 'this'
});
//ws监听
setting.ws.on("open", (res) => {
log("WebSocket连接成功!");
//心跳检测
let hi={'type':'connect','uuid':'033246','device\_code':'003'}
setting.ws.send(JSON.stringify(hi));
setting.heartbeat = threads.start(function(){
setInterval(function(){
console.log('发送心跳包');
}, 10000);
});
}).on("failure", (err, res) => {
// 关闭心跳包线程
setting.heartbeat.interrupt();
//console.error(err);
setting.ws\_status =false;
// 断线重连
if(setting.allow\_ws\_re){
console.error('与总控的连接已断开,五秒后重连...');
sleep(5000)
this.run()
}
// 改变“连接总控”颜色
ui.run(function(){
ui.start.setBackgroundColor(colors.parseColor("#d6d7d7"))
ui.start.text("连接总控")
ui.start.setTextColor(colors.parseColor("#000000"))
});
//alert("提示","ws通道已断开!");
//exit();
}).on("closing", (code, reason) => {
log("WebSocket关闭中");
}).on("text", (text) => {
log("收到消息")
try {
let data = JSON.parse(text);
switch(data.type){
case 'init':
console.log('等待总控响应...')
var ret=recordInit('init')
console.error("初始化返回:"+ret )
if(ret){
toastLog('成功与总控建立连接')
console.info('大功告成,您可以在总控端控制该终端了~');
// 改变"连接总控"颜色
ui.run(function(){
// 如果在主界面
if(ui.start){
if(setting.sys\_name == "闲鱼助手"){
ui.start.setBackgroundColor(colors.parseColor("#009688"))
}else{
ui.start.setTextColor(colors.parseColor("#ffffff"))
ui.start.setBackgroundColor(colors.parseColor(setting.baozeng\_colour))
}
ui.start.text("已连接")
}
});
device.vibrate(500);//震动700毫秒
}else{
setting.ws\_status =false;
let err\_msg = r\['msg'\]
alert(err\_msg);console.error(err\_msg)
}
break;
case 'start':
log('接到任务:',json.task)
let sid = json.sid
stopEngine()
try {try {if(main\_thread) main\_thread.interrupt()} catch (error) { }} catch (error) { }
if(getScriptConfig(sid)){
send\_Log('\[开始运行\]'+json.task,true)
main\_thread = threads.start(function () {
doTask(sid)
});
}else{
send\_Log('\[启动失败\]设备获取脚本配置失败!',true)
}
break;
case 'web\_to\_aj\_command':
//执行web发来的命令
//console.warn(data.task\_type + '('+data.task\_id+')');
threads.start(function () {
eval(data.task\_type + '('+data.task\_id+')');
console.log('等待总控命令中....')
});
break;
case 'exec\_command':
break;
case 'NO':
log(data.msg)
toast(data.msg)
setting.ws.closed();
break;
case 'web\_to\_aj\_chat\_message':
//web\_to\_aj\_chat\_message
console.log(data)
// console.log('web\_to\_aj\_chat\_message')
setting.message.push({name:data\['name'\],message:data\['message'\]})
break;
default:
console.log('defautl')
console.log(data)
}
} catch (error) {
log("解析返回来的数据错误")
log(error)
}
}).on("closed", (code, reason) => {
//log("WebSocket已关闭: code = %d, reason = %s", code, reason);
setting.ws\_status =false;
alert("提示","ws通道已断开2");
console.error('ws通道已断开2')
//exit();
});
}
}
// 函数导出
module.exports = ws;
手机扫一扫
移动阅读更方便
你可能感兴趣的文章