目前lua集成protobuf主要有两种方式git
1. protobuf-gen-lua方案github
https://github.com/sean-lin/protoc-gen-lua 参照说明便可集成json
这个方案是将proto文件导出成lua文件, 使用起来稍微麻烦, 不能直接建立lua table, 而是要用生成lua pb文件中指定格式的table来生成二进制, 一样服务器返回的二进制数据也是反序列化成生成lua pb文件中指定格式的table。 对数组的操做与lua原生方式不同, 没有良好的打印日志功能, 须要本身编写, 若是本身封装框架会很别扭, 由于要编写系列方法来处理lua table和lua pb中的table的转换和对应关系数组
2. 云风pbc方案服务器
https://github.com/cloudwu/pbc框架
这个方案处理的很干净利落 相似与json.decode json.encode 能够直接把lua table生成二进制和直接从二进制反序列化成lua table, 所以log功能 框架封装都处理起来很顺手加密
这个方案提供了tolua封装lua
须要注意的是,pb文件是proto编译生成的,暴露在资源路径下,须要本身进行加密,不然真成了裸奔了日志
启动时须要注册protobuf文件code
local buffer = cc.FileUtils:getInstance():getStringFromFile(" XXX.pb")
protobuf.register(buffer)