leaf开源游戏服务器源码 leaf开源服务器第一节-分析项目结构 leaf开源服务器第二节-分析之配置文件说明及服务器运行 大家好,我是Golang语言社区的站长,今天给大家带来的是关于leaf的游戏服务器通信分析;leaf支持TCP和websocket,我们首先分析TCP的链接机制;由于原作者的log模块不好用,日志打印的时间标志和文件定位信息缺失,所以直接增加了glog第三方日志库;这个方便我们调试;这个看个人的习惯主要还 client代码; 执行 如图: 大家看开源工程的时候,特别是项目需要用到的时候,建议先网上找下;看下有没有对我们正在研究的开源项目的介绍,这样我们就可以少走些弯路,但是如果是只是想提高自己的技术水平,那就自己来一步一分析 首先,我们这节是研究通信机制,大家想想,通信模块是不是属于“底层”的,这个通讯模块一定是在作者的leaf包里吧,你可以自己去leaf的项目非包文件找,是找不到的吧‘ 所以我们看源码,找到通信模块 找到之后,运行我们的leaf的server和我们刚写的client;发现原作者的日志只是简单的打印了错误;对我们的分析并没有任何用处,所以我们需要加个日志来调试我们的消息的数据;这个原开源的项目并不能想我们调试的项目随便加日志;但是调试的时候,特别是服务器开发,流水日志是处理问题的比不可少的;建议我们拿到开源项目,必要的流程日志还是需要我们自己加上,上线的时候可以屏蔽。 增加Glog日志,再main.go增加初始化函数和第三方日志库 加好后,我们就可以再之前的TCP网络库加上 之后我们运营leaf的server和我们的client,如图: OK,今天的分析就暂时到这里;最后给大家几点忠告 1 拿到开源项目,我们的思路不要被原作者带着走;按照自己的编码习惯,按照的理解去测试。 2 平时开发中学会整理常用包,找个自己用的习惯的。例如这节我就用了GLOG库,并没有用原作者的,因为作者的日志并不是不好;而是日志打印的信息并不能很好定位我要找的数据;大家如果不信;可以试试,如果是在线上,很头疼的。 3 既然是开源项目;所以我们可以按照我们的理解和我们的测试结果去修改,修改到架构的最适合自己的;为我所用才是我们分析的目的 4 不管是leaf还是其他语言开发的游戏服务器,思想都是一样的,语言是工具谨记; 公众账号:Golang语言社区 社区微博:Golang语言社区 社区网址:www.Golang.Ltd 社区资源:www.Golang.MoM 社区直播:www.huya.com/golang 社区教育:www.NewTon.TV 我是彬哥,下节再见。 |
leaf开源服务器第三节-分析TCP消息通信之增加Glog日志(1)
最新推荐文章于 2022-11-29 10:42:59 发布