Baste 发表于 2023-2-27 11:46

Cocos Creator使用protobuf

# 项目设置

- 使用nvm安装protobuf.js插件
- 下载protobuf.js
- 导入到工程中,并设置为插件
# 使用方法


[*]通过命令pbjs将proto生成js
$> pbjs -t static-module -w commonjs -o compiled.js file1.proto file2.proto

[*]pbts 生成Ts文件
$> pbts -o compiled.d.ts compiled.js

[*]封装发送包
let login = {
   userID: 1,
   passWord:'000',
   limitID:null,
   userIP:'',
   clientType:null,
   clientDetail:null
}

let message = HallPb.loginC2S.create(login)
let buffer = HallPb.loginC2S.encode(message).finish();
console.log("--", buffer)

[*]解析接收包
let demessage = HallPb.loginC2S.decode(buffer)
console.log(demessage)
外部加载方法

将hall.proto 存放在 assets/resources 目录下
cc.loader.loadRes("hall", cc.TextAsset,(err, protos)=> {
   if (err) {
      cc.log("load proto error ==> ", err)
      return
      }

let hallCmd = protobuf.parse(protos)
   let loginMsg:any = hallCmd.root.lookupType("hall.LoginC2S")
   let playerObj = HallCmd.LoginC2S.create(player);
   let playerCmd = HallCmd.LoginC2S.encode(playerObj).finish();
})
页: [1]
查看完整版本: Cocos Creator使用protobuf