3. 登录服务器 login 和热更新

来源:互联网 发布:gps航迹编辑软件 编辑:程序博客网 时间:2024/05/20 17:24

工作流程

    login 会主动连接 mysql 中间件,同时接受 gate / lobby的连接, gate / lobby 可以有多台

    每个 gate 和 lobby 都有唯一编号( serverid ), 在连接到 login 后, gate 会把 serverid和监听的IP端口发送给 login 保存, lobby仅仅发送 serverid 给 login 保存

    gate / lobby 会把负载情况定时发送给 login, 这样在玩家登录的时候, login把负载最少的 gate IP 地址端口 和 lobby serverid下发给玩家

 

    每个玩家在游戏中都有唯一编号 playerid ( 64位整数 ) 来标识身份;  一般来说,玩家都在游戏运营商处注册过用户名,那么在玩家登录的时候,是先去运营商的帐号认证服务器进行验证,以此获得一个帐号 ID,然后把帐号 ID发送给登录服务器进行登录,以此获得: playerid , gate 监听的 IP 地址和端口, lobby serverid

 

流程示意图

 

 

热更新方案

    可以在 login 的配置文件中列出一个 lobby serverid 列表,分配给玩家的 lobby serverid 必须在列表中;如果 lobby 内容有更新, 就启动新的 lobby进程,同时修改 login 配置中的 lobby serverid 列表,去除旧 lobby 的 serverid, 添加新 lobby 的 serverid, 再重新加载配置文件,这样玩家登录时,分配给玩家的 lobby都是新 lobby

0 0