,protobuf怎样传输复杂数据结构?

用户投稿 108 0

关于“protobufmessage_php”的问题,小编就整理了【2】个相关介绍“protobufmessage_php”的解答:

protobuf怎样传输复杂数据结构?

基于proto2 ,的确没有map的原始支持。需要自己定义一个 message 保存 key和value,而且key和value如果不同的话,需要重复定义很多个key,value对象。然后在使用repeated 声明kv对象。

如果确实有很多map对象需要传输,一种是更改你自己的设计。一种是使用thrift。或者使用proto3其实在传输方法传输map与vector是一样 ,只不过解析的时候,需要转换 多一次而已。建议从协议上设计去适配。

大侠们unity怎么在lua中用protobuf的?

unity在lua中用protobuf可以在PC或者移动设备上使用。

lua-protobuf的高层接口:

pb.dll 提供四个模块:

1、pb模块:高层接口,提供和pbc兼容的encode/decode接口。

2、pb.conv:这是一个转换工具库,负责在Lua里方便地在protobuf提供的各种类型和Lua原生类型之间转换。

3、pb.slice:提供了底层的protobuf协议解析能力,能够在不知道message的情况下解析协议二进制数据。

4、pb.buffer:提供了底层的protobuf的协议序列化能力,能够在不知道message的情况下序列化信息。

5、:这个主要是为写protoc插件使用的。protoc会把pb二进制文件通过stdin传递给插件,然而stdin在Windows下默认是用文本模式打开的,这就会导致解析错误。因此提供了二进制模式下的IO读写功能。

lua-protobuf高层接口还提供了这些函数:

1、pb.clear(),清除之前注册的所有消息。

2、pb.clear(msgName),清除某个之前注册的消息

3、pb.load(chunk),直接解析字符串/Slice格式的二进制pb数据注册消息。

到此,以上就是小编对于“protobufmessage_php”的问题就介绍到这了,希望介绍关于“protobufmessage_php”的【2】点解答对大家有用。

抱歉,评论功能暂时关闭!