gonet A game server skeleton implemented with golang. 游戏服务器框架

程序名称:gonet A game server skeleton implemented with golang.

授权协议: MIT

操作系统: 跨平台

开发语言: Google Go

gonet A game server skeleton implemented with golang. 介绍

A game server skeleton implemented with golang.

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

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

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

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

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

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

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

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

  1. GS节点可以单独重启

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

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

  1. 确保安装好bzr, graphviz, gawk

  2. 确保安装好mongodb

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

  4. export GOPATH=’当前目录’

  • xtaci@ubuntu:~$ git clone https://github.com/xtaci/gonet

  • xtaci@ubuntu:~$ cd gonet

  • xtaci@ubuntu:~/gonet$ export GOPATH=~/gonet

  • xtaci@ubuntu:~/gonet$ go get labix.org/v2/mgo

  • xtaci@ubuntu:~/gonet$ make

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

gonet A game server skeleton implemented with golang. 官网

https://github.com/xtaci/gonet

相关编程语言

BlazeDS 是一个基于服务器的Java 远程控制(remoting...
OVal 是一个可扩展的Java对象数据验证框架,验证的规...
Volta 是一套开发工具,专为开发分布式、实时系统应...
OpenDDS 是一个开源的 C++ 实现的 对象管理组织 OMG...
JADE (Java Agent DEvelopment Framework) 是一个完...
FastMM ,在D2006和2007中已代替了原来的内存管理器。