使用protobufjs:
安装:
yarn add global protobufjs
yarn add global protobufjs-cli// 将项目中的*.proto文件编译成json文件
npx pbjs -t json electron/main/proto/*.proto > electron/main/proto/proto.json可以在src/proto目录下生成一个proto.json文件,打包成js模块的命令:
npx pbjs -t json-module -w commonjs -o electron/main/proto/proto.js electron/main/proto/*.proto
注:我这个.proto文件是公司c语言程序猿写的,所以拿过来直接执行转换js文件就可以使用了
使用:
var protoBuf = require('protobufjs');
import protoload from '../proto/Payload'
// 我这里没有用protobufjs在load方法内写,而是通过这种方式去引入的
var root = protoBuf.Root.fromJSON(protoload);
const AwesomeMessage = root.lookupType("NewmineMsg").ctor;// 使用这个方式将我protobufjs转换为对象内到bytes用Text解码然后得到了没有中文乱码的文本
const textEncoder = new TextDecoder();
const decoded = AwesomeMessage.decode(buffer)
// 传送给渲染线程
mainWindow?.webContents.send(UI.GETNEWMESSAGE, {...AwesomeMessage.decode(buffer), message: textEncoder.decode(decoded.payloadBytes)})
学习博客地址:https://www.cnblogs.com/qianxiaox/p/14019522.html
npm包地址:https://www.npmjs.com/package/protobufjs