unity3dgame吧 关注:964贴子:1,292
  • 20回复贴,共1

仿Bigworld服务器构架制作日志

只看楼主收藏回复

该篇是最近在重整Melee服务器时,所使用的仿照Bigworld的服务器构架的制作日志。工程有点大,挺辛苦的。


IP属地:上海1楼2013-08-05 20:56回复
    1、集群分为如下几种
    1.1 LoginApp登录服务器
    1.2 LobbyApp大厅服务器
    1.3 LobbyAppManager
    1.4 CellApp 游戏局逻辑,一个CellApp可以同时拥有多个游戏局
    1.5 CellAppManager 管理所有的CellApp
    1.6 DbManager 管理数据库连接与全局统一的数据对象


    IP属地:上海2楼2013-08-05 20:59
    收起回复
      实现了BaseApp与BaseAppMgr的基本通讯
      1、BaseApp向BaseAppMgr注册上线,返回唯一的服务器ID
      2、BaseApp向BaseAppMgr更新当前状态
      实现了LoginApp与BaseAppMgr的通讯
      1、LoginApp向BaseAppMgr查询可用服务器信息


      IP属地:上海3楼2013-08-06 02:47
      回复
        Bigworld~LoginApp~BaseApp~CellApp~ 感觉又回到了小镇时代~~。。


        IP属地:上海4楼2013-08-06 10:50
        收起回复
          1、封装了服务器与客户端的通讯数据结构,使其更明朗。
          2、数据包加解密从封包结构中提出,可应用于任何数据包形式。
          3、服务器和客户端做了特定的接口,使其更规范化。
          4、封装底层通讯协议结构


          IP属地:上海5楼2013-08-06 12:24
          收起回复
            登录流程介绍
            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修改登录中状态为已登录状态,登录统计等
            整个登录流程就是这样


            IP属地:上海6楼2013-08-07 15:19
            收起回复
              草泥马的!!终于过了第一关。搞死我了
              现在进入第二关:BaseApp与CellApp、CellAppMgr的通讯


              IP属地:上海7楼2013-08-12 01:55
              回复
                由于需要引入微游戏接口,所以这里停止更新了一段时间。现在微游戏接口完成了,DbMgr关于登录的这块也就通关了。~~
                接下来就正常更新日志


                IP属地:上海8楼2013-08-18 02:30
                回复
                  8-19更新
                  1、DbMgr处添加针对防沉迷的收益衰减规则
                  2、DbMgr处,登录完成时,根据是否通过防沉迷并检测一次在线时间,用于累积后续的在线时间


                  IP属地:上海9楼2013-08-19 14:01
                  收起回复
                    821:
                    远程服务器上已配置完成,可运行起大厅功能。


                    IP属地:上海10楼2013-08-22 02:22
                    回复
                      最近也在研究服务器相关方面的呢。忽然看到你在这里发的帖子了。


                      IP属地:四川11楼2013-09-21 23:37
                      收起回复