一个方便调试JS的RPC工具PIGA-GO
Posted 白鸿丁儒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个方便调试JS的RPC工具PIGA-GO相关的知识,希望对你有一定的参考价值。
PIGA-GO是一个基于长链接的PRC调用调试工具,原理是通过HTTP服务进行协议转发执行相应的websocket客户端进行调用操作。而调用的参数格式目前仅支持json进行传输。
PIGA-GO是使用go编写完成的试作版,也是在此之前用DJANGO+CHANNEL基础之上进行开发项目的又一试作版。目的是通过长链接的服务调用各个客户端上的执行命令进行返回。其优点如下
因为通过浏览器JS注入的方式,通过远程调用实现浏览器非selenium和puppeteer的自动化操作。
服务解耦,由于该工具仅提供RPC服务因此对于具体实现的服务没有要求,可以通过各类框架编写相应的客户端代码实现RPC操作
部署方式
访问资源(包含源码以及编译资源)
https://gitlab.com/cchinm/piga-go/-/releases/v1.0.1b
通过源码部署编译
下载源码,并安装go.1.13+
设置GOPATH路径
切换到GOPATH路径并执行以下语句 , 完成编译
go mod tidy && go build -o piga-go.exe
直接下载运行
目前仅支持windows平台
下载相应版本的PIGA-GO安装包,解压。双击piga-go.exe运行服务
参数配置
通过配置conf文件目录下配置文件完成参数设置
客户端使用
js-piga-client
function guid() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var r = Math.random() * 16 | 0,
v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
var uuid = guid();
ws = "/ws/server?auto=false&group=" + window.location.host + "&uuid=" + uuid;
var socket = new WebSocket("ws://" + "127.0.0.1:8080" + ws);
socket.onopen = function() {
console.log('WebSocket open');
}
;
socket.onmessage = function(e) {
console.log('message: ' + e.data);
socket.send(JSON.stringify(e.data)) // 在这里写你的业务逻辑
}
;
if (socket.readyState == WebSocket.OPEN)
socket.onopen();
window.s = socket;
调用js-piga-client
import requests
import json
url = "http://127.0.0.1:8080/v1/app/execute"
payload={"Uuid":"1111-111-1111-111", # 这里填写上面所生成的识别号
"Timeout":12, # 响应超时时间 建议5s
"Method":"", # 业务参数
"Param":"" # 业务参数
}
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=json.dumps(payload))
print(response.text)
常用API
GET /v1/app/groupList
获取所有分组
机器分组 =
获取识别号 也即是uuid
POST /v1/app/execute
调用ws服务
未实现
session会话的维持
HTTP异步处理
读写缓存动态设置
资源管理调配
多点集群部署
链接设备的健康检测
调用鉴权,安全调用操作
可视化操作界面
PIGA-GO事实上是一个调度系统过程中开发的一个副产品,同时也只是一个简单ECHO服务。
偶尔玩玩技术,偶尔写写作
以上是关于一个方便调试JS的RPC工具PIGA-GO的主要内容,如果未能解决你的问题,请参考以下文章
谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js
Node.js热部署代码,实现修改代码后自动重启服务方便实时调试