1.下载
npm i -g protobufjs
2.将.proto转化为js
npx pbjs -t json-module -w commonjs -o src/proto/proto.js src/proto/*.proto
-w, --wrap 指定要使用的包装器,可接受需要自定义包装器的路径。
default 默认包装器支持CommonJS与AMD标准
commonjs CommonJS包装器
amd AMD包装器
es6 ES6包装器
closure 添加到全局protobuf的protobuf.roots上的闭
3.引入
import protobufRoot from “…/protobuf/proto.js”
4.使用
序列化:
let getObCountReq = protobufRoot.lookup(“broadcast_svr_mgr.GetOBCountRequest”)
let req = getObCountReq.create({
roomKey: roomKey(svrType, svrId, roomId, createTime),
})
return getObCountReq.encode(req).finish()
反序列化:
let operationNotifies = protobufRoot.lookup(“broadcast_svr.OperationNotify”).decode(data)
注意事项:使用vite时不能使用require,所以包装器要使用es6

文章介绍了如何使用npmi-gprotobufjs工具将.proto文件转换为JavaScript代码,并详细说明了转换过程,包括指定包装器选项(如CommonJS、AMD、ES6)。在Vite环境下,由于不支持require,需使用ES6包装器。文章还展示了如何利用转换后的库进行数据的序列化和反序列化操作。

被折叠的 条评论
为什么被折叠?



