Github项目

antnet:Golang编写的游戏服务器网络框架

antnet是一个用Golang编写的游戏服务器网络框架。它具有多种解析器类型,如protobuf、cmd等类型,每种解析器都有特定的Type和ErrType字段。消息队列可根据是否带消息头分为两种类...

标签:

【Github】项目名:antnet:Golang编写的游戏服务器网络框架

一、项目简介

antnet是一个用Golang编写的游戏服务器网络框架。它有着丰富的功能,例如多种类型的解析器、消息队列的抽象处理、广播与组播消息的特殊处理等。框架在设计上充分考虑了Go语言的特性,代码结构组织合理,相关功能代码聚集,方便查找,像以parser打头的文件表示解析器相关,msgque打头的文件表示消息队列相关。

二、项目目的

构建一个适用于游戏服务器开发的网络框架,满足游戏开发中的网络通信、消息处理等需求,提高游戏服务器开发的效率和性能。

三、核心技术

1. 多种解析器类型:
– 拥有六种解析器类型,包括protobuf类型(ParserTypePB)用于和客户端交互、cmd类型(ParserTypeCmd)类似telnet指令用于直接和程序交互、json类型(ParserTypeJson)可用于客户端或者服务器之间交互、msgpack类型(ParserTypeMsgpack)可用于客户端或者服务器之间交互、自定义类型(ParserTypeCustom)以及不做任何解析的类型(ParserTypeRaw)。
– 每个解析器需要一个Type字段表示解析器类型,ErrType字段决定消息解析失败之后的默认行为,有发送提醒消息(ParseErrTypeSendRemind)、跳过本条消息(ParseErrTypeContinue)、解析失败依然处理(ParseErrTypeAlways)、解析失败则关闭连接(ParseErrTypeClose)这四种方式。
2. 消息队列抽象:
– 将来自tcp、udp、websocket的数据流抽象为消息队列,并且根据是否带有消息头分为MsgTypeMsg(基于确定的消息头)和MsgTypeCmd(消息没有消息头,以\n分割)两种类型。
3. 处理器设计:
– 处理器需要实现IMsgHandler接口,包含新消息队列处理(OnNewMsgQue)、消息队列关闭处理(OnDelMsgQue)、默认消息处理函数(OnProcessMsg)、连接成功处理(OnConnectComplete)、根据消息获得处理函数(GetHandlerFunc)等功能。
– 可通过在处理器中添加antnet.DefMsgHandler定义来简化操作,其中也有类似解析器的Register和RegisterMsg函数用于区分不同输入。
4. 日志系统:
– 有着不同的日志等级,包括开放所有日志(LogLevelAllOn)、调试信息(LogLevelDebug)、资讯讯息(LogLevelInfo)、警告状况发生(LogLevelWarn)、一般错误(LogLevelError)、严重错误(LogLevelFatal)、关闭所有日志(LogLevelAllOff),通过antnet.Logxxx即可输出不同等级的日志。
5. Redis封装:
– antnet对redis进行了封装,antnet.Redis主要记录了对eval指令的处理,能够把预先生成的lua脚本上传到redis得到hash,以后使用evalsha命令进行调用,还有RedisManager用于管理一组redis数据库。
6. 定时器:
– 基于时间轮的计时器,精度是毫秒,用于定时器使用。
7. 数据模型:
– 自带基于redis的数据模型处理,使用protobuf作为数据库定义语言,默认情况下,redis内部存储的数据是msgpack格式的,方便在处理时转换为protobuf数据流发给客户端。

四、实践案例

1. 已服务全球数千万玩家,部分商业游戏案例包括《街篮2》(https://www.taptap.com/app/175459)、《灌篮高手》(https://www.taptap.com/app/154129)。
2. 支持H5研发,如微信小程序中的《美食大战老鼠2》《街机三国3》等。
3. 有一个websocket的测试框架wsserver(https://github.com/magiclvzs/wsserver),用不到60行逻辑代码实现了基于websocket + protobuf的聊天系统。

五、项目总结

antnet是一个功能丰富、设计合理的游戏服务器网络框架。它在多个方面有着独特的设计,如利用Go语言特性、考虑网络细节等,并且在实际应用中有诸多成功案例。希望大家对这个项目感兴趣的话可以留言一起讨论,分享自己的见解或者使用过程中的经验等。

项目地址

GitHub链接直达

数据统计

数据评估

antnet:Golang编写的游戏服务器网络框架浏览人数已经达到7,如你需要查询该站的相关权重信息,可以点击"5118数据""爱站数据""Chinaz数据"进入;以目前的网站数据参考,建议大家请以爱站数据为准,更多网站价值评估因素如:antnet:Golang编写的游戏服务器网络框架的访问速度、搜索引擎收录以及索引量、用户体验等;当然要评估一个站的价值,最主要还是需要根据您自身的需求以及需要,一些确切的数据则需要找antnet:Golang编写的游戏服务器网络框架的站长进行洽谈提供。如该站的IP、PV、跳出率等!

关于antnet:Golang编写的游戏服务器网络框架特别声明

本站链氪巴士提供的antnet:Golang编写的游戏服务器网络框架都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由链氪巴士实际控制,在2024年12月6日 上午12:00收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,链氪巴士不承担任何责任。

相关导航

暂无评论

暂无评论...