本文公众号链接为:https://mp.weixin.qq.com/s/ClTgY-S7hLfirWo_-SvEIA
Leaf 是一个由 Go 语言(golang)编写的开发效率和执行效率并重的开源游戏服务器框架。Leaf 适用于各类游戏服务器的开发,包括 H5(HTML5)游戏服务器。
Gate 模块为Leaf提供接入功能。这个模块的功能很重要,是服务器的入口。它能同时监听TcpSocket和WebSocket。主要流程是在接入连接的时候创建一个Agent,并将这个Agent通知给AgentRpc。其核心其实是一个TcpServer和WebScoketServer,他的协议函数能够将socket字节流分包,封装为Msg传递给Agent。其工作流可以查看Server模块。
那么gate,network,skeleton的主要用法关系如下
skeleton的用法已经讲解过了
下面先讲讲gate、network各个模块
tcp msg
github.com/name5566/leaf/network/tcp_msg.go
msg是对数据的封装
MsgParser
len + data模式
lenMsgLen int len的字节长度
minMsgLen uint32 最小msg长度
maxMsgLen uint32 最大msg长度
littleEndian bool 大小端
NewMsgParser