//初始化方法

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;

autojs 云控_autojs websocket 核心示例代码,云控技术相关推荐

  1. 【物联网】华为云物联网平台-基于C示例代码的快速体验

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 创建产品 04. 注册设备 05. C语言工程下载 06. 编译OpenSSL库 07. 编译paho库 08. 编译C参 ...

  2. js调用websocket接口示例代码

    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> <script ...

  3. Asp.net 2.0 自定义控件开发专题讲解[为用户控件增加DataSource属性, 能够自动识别不同数据源](示例代码下载)...

    (一).  概要 开发<数据绑定用户控件>, 要实现一个DataSource属性, 并且能够自动识别不同的数据源, 如: ArrayList, DataTable, DataSet, XM ...

  4. 云开发使用 got 的 get/post 传参请求示例代码

    使用 got 进行网络请求的步骤: 1.创建云函数,并在终端执行云函数 2.执行 npm 安装 got ,命令:cnpm install --save got 3.在云函数中使用 示例代码: // 云 ...

  5. python代码示例百度云-python利用百度云接口实现车牌识别的示例

    一个小需求---实现车牌识别. 目前有两个想法 1. 调云在线的接口或者使用SDK做开发(配置环境和编译第三方库很麻烦,当然使用python可以避免这些问题) 2. 自己实现车牌识别算法(复杂) 一开 ...

  6. [导入]Asp.net 2.0 自定义控件开发[创建自定义浮动菜单FloadMenu控件][示例代码下载]...

    Asp.net 2.0 自定义控件开发[创建自定义浮动菜单FloadMenu控件][示例代码下载] 文章来源:http://blog.csdn.net/chengking/archive/2007/0 ...

  7. 坚果云(创建 删除 下载 上传)代码,基于autojs开发的脚本

    说明 本文提供的代码仅供参考.不建议用于生产环境. 可能有些地方在最新版本的Auto.js上面需要做修改,才能运行. Auto.js简介 Auto.js是利用安卓系统的"辅助功能" ...

  8. 调用电子口岸IC卡/UKEY控件WebSocket方式进行数据加签的示例

    本示例通过一个纯html+js的页面文件,演示了以WebSocket方式调用电子口岸IC卡/UKEY控件,对数据进行加签 应用场景包括:海关业务报文申报.海关总署2018年179号公告对接加签要求等 ...

  9. linux qt 打印预览控件,Qt实现保存、浏览、预览、打印功能的示例代码

    Qt提供了以文本.图片.HTML等方式来实现对文档的操作,主要用到了QPrinter类和QPainter类,用到了QFileDialog文件窗口.QPrintPreviewDialog预览窗口类和QP ...

最新文章

  1. Python中判断字典的键或值在不在字典中 默认是判断的依据是条目在不在字典的键集合中
  2. c之指针与数组(1)
  3. 已经无法合并还报请合并git_Git不能自动合并怎么解决?
  4. wxHtml 示例:演示虚拟文件系统功能
  5. CI/CD大幅减少甩锅!
  6. CC2530存储空间——Code
  7. 如何给 Chrome 开发者工具设置 Material Design 风格的主题外观
  8. 深度学习工作开展_深入开展深度工作:新经济中的两项核心能力
  9. spark on yarn webUI logs不能查看
  10. 基本类型与字符串的相互转换
  11. java+输出流++空值_一文搞定Java的输入输出流等常见流
  12. java List 数组删除元素
  13. 新手学.net(习惯问题)
  14. HDU1231 最大连续子序列【最大子段和】
  15. 延时执行和取消延时执行
  16. VS 2005/2008 Web Setup Project
  17. 大多数微型计算机都是基于,基于PCI总线数据采集系统的设计
  18. 两个蓝牙模块HC-05转TTL转USB上电自动配对配置过程详解
  19. word文本框文字垂直居中_如何在Microsoft Word中的页面上垂直居中放置文本
  20. win10关闭计算机的原因,win10电脑自动关机是怎么回事

热门文章

  1. 项目运行报'vue-cli-service' 不是内部或外部命令,也不是可运行的程序 或批处理文件“
  2. idea解决maven pom依赖下载失败
  3. react native笔记-个人记录-初始化工程遇到的问题
  4. iscroll的使用
  5. css-背景图片和渐变
  6. C语言 十进制和十六进制相互转换 - C语言零基础入门教程
  7. BugkuCTF-Crypto题一段Base64
  8. ext 如何判断是否是整数_Excel表格技巧—如何用ISNUMBER判断是否是数值
  9. vivoy9s怎么设置返回键_vivoy9s怎么设置返回键 可以使用虚拟导航键
  10. 虚拟机linux中怎样打开qt,虚拟机中在Centos 4.7中安装qt-x11-opensource-4.4.3