我是靠谱客的博主 喜悦母鸡,最近开发中收集的这篇文章主要介绍群控系统原理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

微信云控系统,其概念是相对于微信群控系统的。微信群控系统是通过usb线传输数据控制手机进行模拟操作的,而微信云控系统则是通过网络传输数据操作手机端。也就是从服务器下发命令到手机上,手机端执行各种模拟操作。

   微信云控系统主要用到的技术有服务器推送技术,客户端接收数据,并执行模拟点击操作。服务器推送在这里我们主要用到的是推送透传,大家可以采取自建推送平台,这个就比较麻烦,要根据协议来写。还有就是使用现在已经非常成熟的第三方服务,有个推,极光,百度等等。大家可以去了解下。客户端接收到服务器端传送的命令后,触发相应的操作。客户端的模拟点击实现,在这里我们使用的是uiautomator,可模拟各种点击,输入等操作。

 如果还需要虚拟定位,一键换机等操作,则需要用到Android的劫持工具xposed。这是个功能很强大的第三方工具,可以劫持任何你想改变的数据。

 云控系统实现的关键是服务器端的推送,在我们的云控系统中主要是借助第三方推送服务,这里使用的是个推。大家也可以有不同的选择,这个是因人而异的。

  服务器端核心推送源码为:

   //

//服务端推送接口,支持三个接口推送
//1.PushMessageToSingle接口:支持对单个用户进行推送
//2.PushMessageToList接口:支持对多个用户进行推送,建议为50个用户
//3.pushMessageToApp接口:对单个应用下的所有用户进行推送,可根据省份,标签,机型过滤推送
//

//单推接口案例
public function pushMessageToSingle(){
//var_dump(’./’.ROOT . ‘touchuan/’ . ‘IGt.Push.php’);exit();
//require_once(’./’.ROOT . ‘touchuan/’ . ‘IGt.Push.php’);
//$igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
$igt = new IGeTui(NULL,APPKEY,MASTERSECRET,false);

//消息模版:
// 1.TransmissionTemplate:透传功能模板
// 2.LinkTemplate:通知打开链接功能模板
// 3.NotificationTemplate:通知透传功能模板
// 4.NotyPopLoadTemplate:通知弹框下载功能模板

// $template = IGtNotyPopLoadTemplateDemo();
// $template = IGtLinkTemplateDemo();
// $template = IGtNotificationTemplateDemo();
$template = $this->IGtTransmissionTemplateDemo();

//个推信息体
$message = new IGtSingleMessage();


$message->set_isOffline(true);//是否离线
$message->set_offlineExpireTime(3600*12*1000);//离线时间
$message->set_data($template);//设置推送消息类型

// $message->set_PushNetWorkType(0);//设置是否根据WIFI推送消息,1为wifi推送,0为不限制推送
//接收方
$target = new IGtTarget();
$target->set_appId(APPID);
$target->set_clientId(CID);
// $target->set_alias(Alias);

try {

    $rep = $igt->pushMessageToSingle($message, $target);
    var_dump($rep);
    echo ("<br><br>");


}catch(RequestException $e){
    $requstId =e.getRequestId();
    $rep = $igt->pushMessageToSingle($message, $target,$requstId);
    var_dump($rep);
    echo ("<br><br>");
}

}

//多推接口案例
public function pushMessageToList( i d s A r r , idsArr, idsArr,cmd)
{
putenv(“gexin_pushList_needDetails=true”);
putenv(“gexin_pushList_needAsync=true”);

$igt = new IGeTui(HOST, APPKEY, MASTERSECRET);
//消息模版:
// 1.TransmissionTemplate:透传功能模板
// 2.LinkTemplate:通知打开链接功能模板
// 3.NotificationTemplate:通知透传功能模板
// 4.NotyPopLoadTemplate:通知弹框下载功能模板

// var_dump("ssssssssssss");
//$template = IGtNotyPopLoadTemplateDemo();
//$template = IGtLinkTemplateDemo();
//$template = IGtNotificationTemplateDemo();
$template = $this->IGtTransmissionTemplateDemo($cmd);
//个推信息体
$message = new IGtListMessage();
$message->set_isOffline(true);//是否离线
$message->set_offlineExpireTime(3600 * 12 * 1000);//离线时间
$message->set_data($template);//设置推送消息类型

// $message->set_PushNetWorkType(1); //设置是否根据WIFI推送消息,1为wifi推送,0为不限制推送
// $contentId = i g t − > g e t C o n t e n t I d ( igt->getContentId( igt>getContentId(message);
$contentId = i g t − > g e t C o n t e n t I d ( igt->getContentId( igt>getContentId(message,“toList任务别名功能”);//根据TaskId设置组名,支持下划线,中文,英文,数字

 foreach ($idsArr as $k=>$v) {

$target = new IGtTarget();
$target->set_appId(APPID);
t a r g e t − > s e t c l i e n t I d ( target->set_clientId( target>setclientId(v);
// $target1->set_alias(Alias);
t a r g e t L i s t [ targetList[ targetList[k] = $target;
}
//接收方1
$rep = i g t − > p u s h M e s s a g e T o L i s t ( igt->pushMessageToList( igt>pushMessageToList(contentId, $targetList);
return r e p ; / / v a r d u m p ( rep; // var_dump( rep;//vardump(rep);

// echo ("

");

}

最后

以上就是喜悦母鸡为你收集整理的群控系统原理的全部内容,希望文章能够帮你解决群控系统原理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部