gonet 游戏服务器框架开源项目

我要开发同款
匿名用户2015年02月13日
42阅读
所属分类Google Go、程序开发、游戏开发包
授权协议MIT

作品详情

gonet 是一个用golang实现的游戏服务器框架。

部署:

GameServer(GS):玩家直接连接GS,处理玩家逻辑,并与HUB/SS通信,GS存在若干个。

HubServer(HUB):若干个GS连接到一个HUB,只存在一个HUB,维护基础的全局信息,以及GS<--->GS的消息转发.

StatsServer(SS):统计服务器,根据玩家的行为,记录策划需要的数据,以便于后期统计。统计属于事后分析,数据量较大,性能需求不同,故单独列为一个服务器。

通信原则:

GS到HUB/SS的通信,都是Call同步调用,即GS必须等待ACK。

HUB到GS的通信,只有forward数据包。

单播消息在玩家离线时会存入db,登录后的启动过程 GS 直接读取db,并forward给玩家goroutine。(持久化)

多播消息会发送给所有的在线玩家(非持久化)

广播消息会发送给所有的在线玩家(非持久化)

服务器状态一致性

GS节点可以单独重启

HUB重启后,GS必须全部重启

SS可随意重启,不影响业务

安装先决条件:

确保安装好bzr,graphviz,gawk

确保安装好mongodb

确保config.ini中的mongo_xxxx配置正确

exportGOPATH='当前目录'

安装:

xtaci@ubuntu:~$gitclone https://github.com/xtaci/gonet

xtaci@ubuntu:~$cdgonet

xtaci@ubuntu:~/gonet$exportGOPATH=~/gonet

xtaci@ubuntu:~/gonet$gogetlabix.org/v2/mgo

xtaci@ubuntu:~/gonet$make

xtaci@ubuntu:~/gonet$./start-test.sh

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论