欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

autojs如何客户端与服务端通信

程序员文章站 2022-03-11 15:27:31
两种方式:socket和websocket。具体区别我也没有深入了解,我只要能搞出来就可以。不过用起来的区别恐怕就是websocket必须得有浏览器,我看到的多数的例子是这样的。websocket是使用koa做后端中转的。websocket参考地址:https://www.jianshu.com/p/9655517dde79先启动后端然后打开html测试通讯效果,然后再启动auto的脚本监听地址就可以了。socket是引入了java的类来启动socket的,前端用了node的net包socket...

两种方式:socket和websocket。具体区别我也没有深入了解,我只要能搞出来就可以。
不过用起来的区别恐怕就是websocket必须得有浏览器,我看到的多数的例子是这样的。

websocket是使用koa做后端中转的。
websocket参考地址:https://www.jianshu.com/p/9655517dde79
先启动后端然后打开html测试通讯效果,然后再启动auto的脚本监听地址就可以了。

socket是引入了java的类来启动socket的,前端用了node的net包
socket参考地址:https://blog.csdn.net/feiyunjs/article/details/95601344
net:

var net = require('net'); var port = 3000; //这里是你的服务端ip地址,因为服务端在手机上也就是你的手机ip地址 var host = '192.168.3.100'; var client= new net.Socket(); //创建socket客户端 // client.setEncoding('binary'); //连接到服务端 client.connect(port,host,function(){ client.write("caonimacaonimacaonimacaonimacaonimacaonimacoaniamldjfalkjdfl\r\n"); //向端口写入数据到达服务端 }); client.on('data',function(data){ console.log('from server:'+ data); //得到服务端返回来的数据 }); client.on('error',function(error){ //错误出现之后关闭连接 console.log('error:'+error); client.destroy(); }); client.on('close',function(){ //正常关闭连接 console.log('Connection closed'); }); 

因为服务端使用的是readline方法,所以客户端发送的字符必须有最后的\r\n,表示一行结束。才可以读取,否则程序会进入阻塞状态。
这个读取流有没有其他更好的办法我也不是很清楚,但我确实在这个\r\n卡了好久好久。欢迎留言补充其他的操作方式。
其他问题:曾经碰到过服务端没法读取汉字的问题,但是不知道怎么被解决了……可能是setEncoding的问题。

参考项目地址:https://github.com/bikaiqiao/kuaishou-auto

本文地址:https://blog.csdn.net/weixin_44978432/article/details/107912770