一个方便调试JS的RPC工具PIGA-GO

Posted 白鸿丁儒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个方便调试JS的RPC工具PIGA-GO相关的知识,希望对你有一定的参考价值。

PIGA-GO是一个基于长链接的PRC调用调试工具,原理是通过HTTP服务进行协议转发执行相应的websocket客户端进行调用操作。而调用的参数格式目前仅支持json进行传输。


PIGA-GO是使用go编写完成的试作版,也是在此之前用DJANGO+CHANNEL基础之上进行开发项目的又一试作版。目的是通过长链接的服务调用各个客户端上的执行命令进行返回。其优点如下


  1. 因为通过浏览器JS注入的方式,通过远程调用实现浏览器非selenium和puppeteer的自动化操作。

  2. 服务解耦,由于该工具仅提供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 requestsimport 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获取所有分组
GET /v1/app/groupUserList?group=机器分组根据分组名 获取识别号 也即是uuid
POST /v1/app/execute根据识别号 调用ws服务


未实现

  1. session会话的维持

  2. HTTP异步处理

  3. 读写缓存动态设置

  4. 资源管理调配

  5. 多点集群部署

  6. 链接设备的健康检测

  7. 调用鉴权,安全调用操作

  8. 可视化操作界面


PIGA-GO事实上是一个调度系统过程中开发的一个副产品,同时也只是一个简单ECHO服务。

偶尔玩玩技术,偶尔写写作






以上是关于一个方便调试JS的RPC工具PIGA-GO的主要内容,如果未能解决你的问题,请参考以下文章

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

Node.js热部署代码,实现修改代码后自动重启服务方便实时调试

PHP代码-psysh调试代码片段工具

Chrome 实用调试技巧

#yyds干货盘点# Python网络爬虫之js逆向之远程调用(rpc)免去抠代码补环境简介

# yyds干货盘点 # Python网络爬虫之js逆向之远程调用(rpc)免去抠代码补环境简介