https://gitee.com/liyonghelpme_admin/LuaDiff
Lua差分系统设计
1:通过Protobuf 的 optional 方式,来序列化和反序列化差分数据
2:通过Lua自身的Metatable 来支持 标记数据变动 实现差分数据
3:每帧同步 差分序列化后的 PB数据
4:当初次同步的时候,同步完整的PB序列化数据
实现:
delta.proto 实现pb 协议
pb.c 为 protobuf 的c部分实现
Buffer.lua protobuf的lua部分实现
GenLuaPB.py 将protobuf生成对应的 lua序列化 反序列化代码
DeltaStateTable.lua 实现lua层的差分 结构
API:
PB的序列化 反序列化
Lib.GetSerialize(data, 协议)
Lib.DeSerialize(data, 协议)
获取非嵌套 差分数据
Lib:GetDelta(tb)
获取嵌套差分数据
Lib:GetDeltaDeep(tb)
来源:oschina
链接:https://my.oschina.net/u/186074/blog/4293011