pbui展示插件
实现原理
- 将pb转换成json 主要利用pb位置进行解析
- 编写ui插件,调用go提供的服务,解析成json,在页面呈现
const axios = require('axios')
const toPbJSON = async (body) => {
const r = await axios
.post('http://127.0.0.1:8000/decode', body);
// 可视化
const data = JSON.stringify(r.data, null, 2);
console.log('data ' + data)
return data
};
module.exports = (router) => {
router.post('/cgi-bin/pbview', async (ctx) => {
const {base64} = ctx.request.body;
console.log('body ' + base64 + 'type ' + (typeof base64));
const result = { pbjs: '' };
if (base64 && typeof base64 === 'string') {
result.pbjs = await toPbJSON(Buffer.from(base64, 'base64'));
}
console.log('pbjs ' + result.pbjs)
ctx.body = result;
});
};
部署方式
- 部署go后台服务
- 安装whistle以及 对应的pbui插件
- 抓包,可以看到pb被正常解析
git clone https://github.com/losemy/pb_json.git
go build 或者 go run
不熟悉go的也可以提issue 直接提供可使用的二进制文件
git clone https://github.com/losemy/whistle.pbui.git
npm i -g whistle lack
npm install axios npm install --save axios
npm link
w2 start
代码地址
whistleui插件
pb解析成json插件