autojs 云控_autojs websocket 核心示例代碼,云控技術

//初始化方法

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;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533754.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533754.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533754.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

定時器和promise_從Promise鏈理解EventLoop

面試題new Promise(resolve > { setTimeout(()>{ console.log(666); new Promise(resolve > { resolve(); }) .then(() > {console.log(777);}) }) resolve(); }) .then(() > { new Promise(resolve > { resolve(); …

ugui源碼_UGUI整體解決方案基礎篇(Unity 2019)

課程介紹:本課程是UGUI系列課程的第一篇:基礎篇主要是講解UGUI的基礎組件及接口的使用方法,目前UGUI是unity最常用的UI系統,這部分基礎只是是每個同學都應該掌握的,這里我就是簡單的講解了用法,大家對UGUI熟…

android 實例源碼解釋,Android Handler 原理分析及實例代碼

Android Handler 原理分析Handler一個讓無數android開發者頭疼的東西,希望我今天這邊文章能為您徹底根治這個問題今天就為大家詳細剖析下Handler的原理Handler使用的原因1.多線程更新Ui會導致UI界面錯亂2.如果加鎖會導致性能下降3.只在主線程去更新UI,輪詢處理Handl…

amd cpu排行_最新intel和amd處理器性能排行cpu天梯圖2019

現在市面上cpu廠家有很多,比如常見的intel系列的、amd系列CPU,cpu對電腦起著至關重要的作用,所以我們需要知道cpu性能的好壞,為此小編這就給大家帶來最新intel和amd處理器性能排行對比天梯圖,大家可以了解一下吧。inte…

python中的對象列表_Python內建的對象列表

Python內建的對象列表剛寫Python肯定會遇到這樣的情況,想寫些什么,但又不知從何寫起...在我看來問題在于我們不知道有什么東東可以拿來玩,這里列出Python的內建對象,稍微歸類了一下,多看幾遍代碼自然筆上生花&#xff…

電腦會顯示android,怎么在電腦上顯示、操作安卓手機

想要在電腦上顯示、操作安卓手機,該怎么辦,那么怎么在電腦上顯示、操作安卓手機的呢?下面是學習啦小編收集整理的怎么在電腦上顯示、操作安卓手機,希望對大家有幫助~~在電腦上顯示、操作安卓手機的方法工具/原料windows操作系統安卓手機電腦…

git version是什么軟件_Deepin 15.11 安裝 ZoneMinder 視頻監控軟件

Zoneminder是一款開源的視頻監控軟件,可以很方便的連接ip攝像頭。因計劃將家中的監控攝像頭引入NAS,在一臺deepin系統的筆記本是先進行了測試。UBUNTU和debian系統都是很容易安裝這個軟件的。未來在NAS上用docker啟動一個專門的zoneminder,do…

看不出svp補幀_專業補幀軟件SVP4 實現PotPlayer視頻補幀教程

雖然能實現幀率翻倍,不過現在視頻絕大多數都是24幀或25幀,翻倍也才48幀,沒辦法實現補幀后達到60幀的效果。SVP4是一款專業版視頻補幀軟件,提供GPU加速,并允許使用中檔CPU和幾乎任何GPU硬件為60Hz的FullHD 1080p視頻重新…

android 通知歷史,Android P新特性:追蹤應用通知歷史

原標題:Android P新特性:追蹤應用通知歷史IT之家3月9日消息 不久前,谷歌已經正式推出了首個Android P開發者預覽版,包含了許多新特性。對此,IT之家也進行了一系列報道。該系統的新特性也正在不斷被發現。例如最新消息顯…

文件另存為時名稱會改變_易經:人處在困境時,不要焦慮,改變固定習慣,就會迎來轉機...

我讀《易經》,悟到一些規律:人的一生,起起落落,時而順利,時而受困,都是正常現象,沒有必要把困難和壓力看得太重。人處在困境時,不要焦慮,只要改變你的固定習慣&#xff0…

ubuntu系統寫路由指令_在Ubuntu中如何查看網絡路由表詳解,

在Ubuntu中如何查看網絡路由表詳解,什么是Linux中的路由和路由表?路由的過程意味著IP包在網絡上從一點傳輸到另一點。當你向某人發送電子郵件時,你實際上是在將一系列IP數據包或數據報從你的系統傳輸到另一個人的計算機上。從計算機發送的數據…

jspdf html轉換pdf,使用jspdf將HTML轉換為pdf時出錯

對于一個角度項目,我試圖將包含HTML代碼的字符串變量轉換為pdf文件。我安置了所有的家屬,比如:jspdf格式光柵化HTML我的代碼如下:b64DecodeUnicode(str) {return decodeURIComponent(atob(str).split().map(function(c) {return % (00 c.charCodeAt(0).toString(16)).slice(-…

澄海哪里學機器人編程_終于發現小孩有必要學機器人編程嗎

讓孩子學習編程的目的,就像其他教育方式一樣,只是希望能幫助孩子找到他的興趣點,打開孩子的獲取知識和能力的大門。一起來看看一篇小孩有必要學機器人編程嗎。小孩有必要學機器人編程嗎編程和英語類似,屬于基本技能,未…

鴻蒙系統替代iOS,華為橫空出世!鴻蒙系統,能否替代安卓IOS?

原標題:華為橫空出世!鴻蒙系統,能否替代安卓IOS?從長遠來看,華為主推鴻蒙系統是必然的選擇。畢竟安卓系統為谷歌的,而由于美國限制,讓華為格外被動。命運掌握在自己手里,才有足夠的話…

ubuntu安裝python3.8_將 Ubuntu 16 和 18 上的 python 升級到最新 python3.8 的方法教程

1. 概述 本文記錄在 Ubuntu 16.04 上將 python 升級為 3.8 版本,并配置為系統默認 python3 的過程。 在 Ubuntu 16.04 中,python3 的默認版本為 3.5: $ python3 -V Python 3.5.2 本文以在 Ubuntu 16.04 中安裝為例,方法同樣適用于…

java怎么表示正無窮大_java中怎樣表示一個無窮大? 無窮小?

Java中提供了三個特殊的浮點數值:正無窮大、負無窮大、非數,用于表示溢出和出錯。正無窮大:用一個正數除以0將得到一個正無窮大,通過Double或Float的POSITIVE_INFINITY表示。負無窮大:用一個負數除以0將得到一個負無窮…

ng bind html 無效,angularjs中ng-bind-html的用法總結

本篇主要講解angular中的$sanitize這個服務.此服務依賴于ngSanitize模塊.(這個模塊需要加載angular-sanitize.js插件)要學習這個服務,先要了解另一個指令: ng-bing-html.顧名思義,ng-bind-html和ng-bind的區別就是,ng-bind把值作為字符串,和元素的內容進行綁定,但是ng-bind-htm…

熱門搜索怎么實現_三個步驟教你學會,搜索引擎霸屏技術!

做好SEO就要了解搜索引擎霸屏技術,它是在百度中搜索關鍵字來檢索信息。整個畫面的推薦都是你的內容。那么客戶點擊你的可能性就會增加!那么搜索引擎霸屏技術這么好,那要如何做到呢?1.要想成為霸屏,第一步要選擇好的關鍵…

ethtool用法 linux_Linux命令之Ethtool用法詳解

Linux/Unix命令之Ethtool描述:Ethtool是用于查詢及設置網卡參數的命令。概要:ethtool ethX //查詢ethX網口基本設置ethtool –h //顯示ethtool的命令幫助(help)ethtool –i ethX //查詢ethX網口的相關信息ethtool –d ethX //查詢ethX…

html字體如何設置垂直居中顯示,css文字水平垂直居中怎么設置?

css文字水平垂直居中怎么設置?下面本篇文章就來給大家介紹使用CSS設置文字水平居中和垂直居中的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。1、文字水平居中在CSS中想要讓文字水平居中,可以使用text-a…