level 9
该篇是最近在重整Melee服务器时,所使用的仿照Bigworld的服务器构架的制作日志。工程有点大,挺辛苦的。
2013年08月05日 12点08分
1
level 9
1、集群分为如下几种
1.1 LoginApp登录服务器
1.2 LobbyApp大厅服务器
1.3 LobbyAppManager
1.4 CellApp 游戏局逻辑,一个CellApp可以同时拥有多个游戏局
1.5 CellAppManager 管理所有的CellApp
1.6 DbManager 管理数据库连接与全局统一的数据对象
2013年08月05日 12点08分
2
2、服务器之间的内网连接,通过模拟RPC来互相调用,调用方管理好回调方法,被调方根据返回类型正确返回结果。 目前延迟有些高,高达30MS平均,有待优化。
2013年08月05日 13点08分
LobbyApp原型是BaseApp
2013年08月05日 18点08分
level 9
实现了BaseApp与BaseAppMgr的基本通讯
1、BaseApp向BaseAppMgr注册上线,返回唯一的服务器ID
2、BaseApp向BaseAppMgr更新当前状态
实现了LoginApp与BaseAppMgr的通讯
1、LoginApp向BaseAppMgr查询可用服务器信息
2013年08月05日 18点08分
3
level 13
Bigworld~LoginApp~BaseApp~CellApp~ 感觉又回到了小镇时代~~。。
2013年08月06日 02点08分
4
level 9
1、封装了服务器与客户端的通讯数据结构,使其更明朗。
2、数据包加解密从封包结构中提出,可应用于任何数据包形式。
3、服务器和客户端做了特定的接口,使其更规范化。
4、封装底层通讯协议结构
2013年08月06日 04点08分
5
不是封装过了么》。。
2013年08月06日 09点08分
两个大牛的组合,真是羡煞旁人!
2013年08月07日 04点08分
level 9
登录流程介绍
1、客户端发出登录请求给LoginApp
2、LoginApp收到后先给DbMgr发送该用户的用户名密码是否可以登录(避免同时登录的问题)
3、一旦可登录,DbMgr把该账户设置为登陆中状态(其他登录服务器如果也请求同一帐号的登录就会被拒绝)。在MeleeDbMgr的话,会生成验证微博相关的东西,然后返回给LoginApp一个UID(我们系统的UID,非微博UID)
4、LoginApp向BaseAppMgr取一个最低负荷的BaseApp对象
4-5之间,可以插入排队系统
5、LoginApp拿到BaseApp对象后,向该BaseApp发出授权某一个用户要进入的请求,请求中包含UID和授权码
6、LoginApp发出登录成功的信息给客户端,其中数据结构包括UID,授权码,要连的BaseApp IP,Port
7、客户端断开与LoginApp的连接
8、客户端拿着授权码和自己的UID,去连接BaseApp.
9、BaseApp验证授权码,正确则正式进入大厅服务器
10、BaseApp反馈给LoginApp该用户进来了。让LoginApp清除登录数据,并进行一些已登录的处理,其中包括向DbMgr修改登录中状态为已登录状态,登录统计等
整个登录流程就是这样
2013年08月07日 07点08分
6
授权码采用什么形式的,自动随即生成还是自己编排的?
2013年09月21日 15点09分
回复 panjunke2009 :授权码是随机由服务器生成,带在返回给客户端的数据中,进大厅服务器的时候要带这个授权码,由大厅服务器验证后才能进入,否则是非法直接跳过登录服务器进大厅服务器,被封号
2013年09月21日 18点09分
level 9
草泥马的!!终于过了第一关。搞死我了
现在进入第二关:BaseApp与CellApp、CellAppMgr的通讯
2013年08月11日 17点08分
7
level 9
由于需要引入微游戏接口,所以这里停止更新了一段时间。现在微游戏接口完成了,DbMgr关于登录的这块也就通关了。~~
接下来就正常更新日志
2013年08月17日 18点08分
8
level 9
8-19更新
1、DbMgr处添加针对防沉迷的收益衰减规则
2、DbMgr处,登录完成时,根据是否通过防沉迷并检测一次在线时间,用于累积后续的在线时间
2013年08月19日 06点08分
9
追加: DbMgr完成获取好友列表功能
2013年08月19日 16点08分
level 9
821:
远程服务器上已配置完成,可运行起大厅功能。
2013年08月21日 18点08分
10
level 2
最近也在研究服务器相关方面的呢。忽然看到你在这里发的帖子了。
2013年09月21日 15点09分
11
.....从unity3d吧来的?
2013年09月21日 18点09分
回复 askaqiao :嗯 我是来打酱油的
2013年09月22日 01点09分