目前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)