
protobuf
九嶷山
认真做事 用心做人
展开
-
Protobuf在游戏开发中的运用
最近在研究protobuf在项目中的使用,由于我们项目服务端采用的是C++,客户端是cocos2dx-cpp,客户端与服务端的消息传输是直接对象的二进制流。如果客户端一直用C++来写,问题到不大,但是后期有想法将客户端用lua来写(可以实现苹果平台的新增更新),这个时候问题就出现了(传输的消息定义无法在lua中得到扩展)。这个时候就想到了protobuf。 protobuf原本是google...转载 2018-05-22 10:25:58 · 1415 阅读 · 0 评论 -
C++ Class Mapped Google Protocol Buffer Message
摘要Google Protocol Buffer 是一个优秀的基于二进制的网络消息编解码框架。应用于项目时,可以节省不少的人力资源、开发时间和程序BUG。但其不足之处是protobuf编译器生成的C++消息类(或者Java等其他语言的消息类)冗余数据过多,需要依赖于protobuf的编解码库,一般情况下都不能用于作为业务逻辑对象。因此大部分情况下,程序都需要另外独立定义业务逻辑对象,并且使用pr...转载 2018-10-24 09:36:23 · 410 阅读 · 0 评论 -
使用protobuf(c++)的构建通用的数据系统(转)
本文以C++语言举例,其他语言应该也有类似的解法。假定我们定义了一个Persion的message type,我们的用法可能如下定义person.proto文件,并用protoc编译出person.pb.h 和 person.pb.ccpackage tutorial;message Person { required int32 id = 1; optional stri...转载 2018-09-08 16:57:34 · 1436 阅读 · 0 评论 -
玩转Protocol Buffers
1. 人人都爱Protocol Buffers1.1 Protocol Buffers(PB)是什么?Protocol buffers are Google’s language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, ...转载 2018-09-08 16:40:34 · 846 阅读 · 0 评论 -
Lua-pb 升级到Lua5.3
项目lua库升级到5.3版本后,最头疼的就是原先的一些第三方库原先只是基于lua5.1设计的,比如protobuff 相关的的. 之前项目引入Lua-pb 实现protobuf的解析和使用,但是这个库对64位的数据大多是基于32位,有些地方需要修改下。替换 Struct pack/unpackStruct似乎不支持64位数据的,比如下面的测试,struct.unpack解压后不会大于0xf...转载 2018-08-13 12:02:37 · 832 阅读 · 0 评论 -
调试protobuffer接口的神器——luapb
luapb和云风写的lua-pbc(git://github.com/cloudwu/pbc.git)并不是一个东西。它们最主要的区别是:pbc虽然也不需要把.proto文件生成.js文件后使用,但是它却需要生成.pb文件;luapb是完全不需要生成任何中间文件,可以直接对.proto文件操作。 luapb是开源的一个小项目,源码也很小。github的连接为: https://g...转载 2018-08-13 12:01:23 · 5748 阅读 · 4 评论 -
Protobuf动态解析
阅读目录需求背景 技术介绍 实现 总结 参考文献回到顶部需求背景在接收到 protobuf 数据之后,如何自动创建具体的 Protobuf Message 对象,再做反序列化。“自动”的意思主要有两个方面:(1)当程序中新增一个 protobuf Message 类型时,这部分代码不需要修改,不需要自己去注册消息类型,不需要重启进程,只需要提供protobuf文件;(2)当p...转载 2018-08-13 10:06:35 · 6232 阅读 · 0 评论 -
redis+mysql游戏数据服务器
1、数据服务器详细设计数据服务器在设计上采用三个层次的数据同步,实现玩家数据的高速获取和修改。数据层次上分为:内存数据,redis数据,mysql数据设计目的:首先保证数据的可靠,防止数据丢失,保证数据完整。然后实现数据的高速访问,减少由玩家数量增加对数据服务器性能造成的影响。最后实现运维数据的入库,以及数据持久化。在这个基础上数据服务器不再是一个单一服务器,它涉及到与其他服务器之间的交互。数据服...转载 2018-05-22 11:21:13 · 3513 阅读 · 0 评论 -
protobuf网络框架
前言: protobuf是google的一个开源项目,主要的用途是:1.数据存储(序列化和反序列化),这个功能类似xml和json等;2.制作网络通信协议;一、资源下载:1.github源码地址:https://github.com/mgravell/protobuf-net2.google项目源码下载地址(访问需翻墙):https://code.google.com/p/proto...转载 2018-05-22 10:31:12 · 1725 阅读 · 0 评论 -
window下使用protobuf
注:此处介绍的是在window vs2012环境下c++使用云风protobuf云风protobuf文章:Proto Buffers in Lua:http://blog.codingnow.com/2010/08/proto_buffers_in_lua.html继续完善protobuf库:http://blog.codingnow.com/2010/08/protobuf_for_lu...转载 2019-02-04 09:06:48 · 733 阅读 · 0 评论