在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();
})

你可能感兴趣的:(Cocos,Creator,protobuf)