游戏重复登录逻辑处理

游戏业务必须处理的一个问题就是:处理多设备登录同账号的问题。一般说来,业务都是需要把之前登陆的账号踢下线。我们的游戏底层业务是一个tcp_agent和player进程一一对应:tcp_agengt处理网络层:收发数据、解析数据,向player进程收和发消息;player进程处理游戏业务逻辑。
踢下线的处理有两种方式: 新启和绑定,介绍如下

新启

所谓新启,意思就是新启一个一样的进程来处理,把之前的进程退出。如下图所示:

游戏重复登录逻辑处理_第1张图片
幻灯片2.jpg

注意启动p2的时候,从db中获取到的一定保证是p1持久化的最新数据,这里需要同步等待,不能异步执行。

绑定

绑定不需要启动p2, 把t2对应的player进程绑定为p1即可。


游戏重复登录逻辑处理_第2张图片
幻灯片1.jpg

两种方法区别

  • 新启逻辑更简单,更直观;绑定的逻辑比较复杂,代码一定要清洗
  • 绑定稍微优雅些,不用写db,不用启一个player进程
  • 两种区别也是需要权衡考虑,享受好处的时候,必然要承受义务

你可能感兴趣的:(游戏重复登录逻辑处理)