gate pb - liangmanlin/gootp GitHub Wiki
框架提供了一种开箱即用的协议,如何使用,请参考:go-game-server#定长协议
-
pb.Parse(def map[int]interface{},id int) *Coder
该api不是线程安全的,请在单线程中加载,当id >= 0 时,你可以通过
pb.GetCoder(id int) *Coder
获取。
由于使用了反射,字段需要大写开头。
协议名是一个约定,如下:
-
{Mod}Tos{Method}
库会根据 Mod 和 Method 自动生成协议id。 -
{Mod}Toc{Method}
Tos 表示客户端发送给服务器。
Toc 表示服务器发往客户端。
-
目前支持打包
map[Struct]*Struct
的结构数据,你可以更自由的组合数据结构 -
func (c *Coder) EncodeBuff(proto interface{}, head int, buf []byte) (minBuf []byte)
Coder
新增了一个方法,用于重用buf,目前用在分布式节点打包数据上
这里有一个定义例子:pb_def.go