玩家第一次登陆的信息没有存储

结构介绍:

最近在写游戏中社交相关的逻辑处理。整体思路架构如下:

当玩家登录游戏,去数据库中查找有没有玩家的信息,如果有,那么就取出来,放在内存中,如果没有,就新建一个玩家信息。

当玩家登出游戏的时候,把玩家的信息从内存中写入数据库中

现场日记:

今天在做单元测试的时候,发现一个bug,当玩家第一次登录游戏,然后登出之后,玩家的信息竟然没有存到数据库里。

当玩家第二次登录的时候,再登出游戏,,竟然存到数据库里了。

分析过程:

在知晓这个bug之后,仔细打印从玩家登录到登出过程中运行的每一个函数。经过一翻查找,发现玩家在登出游戏的时候,玩家的信息

往数据库里存储的时候报错,并且错误被劫持。

紧接着,开始打印错误日志,发现当玩家的信息往数据库里面写入的时候,有一个信息从内存中读取失败。

然后分析这个信息,发现了之前思维的一个漏洞:

之前的想法是当玩家第一次登录的时候,先校验用户名和密码,如果不存在用户,那么就会新建一个。这时候,应该接着新建一个初始

的玩家信息,但是之前没有执行这一步。所以导致玩家的信息一直都没有,自然就写不入数据库里。

最终解决方案:

在玩家第一次登入的时候,初始化玩家信息,并存入数据库中

一个今天胜过两个明天

玩家第一次登陆的信息没有存储

相关文章:

你感兴趣的文章:

标签云: