1. 先加载proto结构定义,前面提到可以加载pb或者proto.Schema结构,分别如下: protoc -I=. --plugin=protoc-gen-grpc-csharp= --csharp_out=./ --grpc-csharp_out=./ 第一种大家都熟悉,编一下pb文件,使用loadfile加载 1 -- 加载pb文件,需要把proto编成pb使用 2 local pb = require "pb" 3 assert(pb.loadfile "login.pb") 第二种是我使用的,因为是Schema结构,做成文本文件方便结合资源系统更新 1 local pb = require "pb" 2 local protoc = require "protoc" --protoc在lua-protobuf的目录里 3 4 local protoString = ResLoader.Instance:LoadLuaProtoFile('login.proto.txt') --用自己的资源系统加载文本格式文件 5 protoc:load(protoString) --加载文本文件的内容 2. 使用pb解码,编码协议。这一步就是标准的流程了,lua-protobuf可以直接对定义好的结构decode/encode: 复制代码 1 -- 定义表数据 2 local loginCS = { 3 username="jack", 4 password="123456", 5 } 6 7 -- 序列化 8 local bytes = assert(pb.encode("login.req_login", loginCS)) 9 print(pb.tohex(bytes)) 10 11 -- 反序列化 12 local recvData = assert(pb.decode("login.req_login", bytes)) 13 print(recvData .username) 复制代码 到这就跟以前其他平台使用protobuf没有什么区别了,这篇入门到此结束。