服务端开发笔记三:pemelo开发过程中遇到的问题

一 登录顶号问题:首先需要弄明白的是,一个客户端只有一个pomelo实例。当用户登录之后,不退出,重启客户端。服务器检测到玩家已经登录,会将之前的登录踢下线,客户端会触发disconnect事件,在disconnect中断开pomelo链接。这样导致当前的链接也被断掉了。解决方案:目前处理方式是在disconnect中不断开链接。但这样处理有个问题,当服务器链接不上时,会有一个报错。原因目前还在查找,找到了再来更新,有路过的小伙伴儿有其他的解决方案也欢迎留言讨论。二 数据库触发器问题:数据库中有两种表User和Level,添加了一个触发器,当在User表中插入数据时,在Level表中也生成一条记录,保存玩家初始的关卡数据。这种的设定看上去合符逻辑,没有问题,但是运行的时候问题出来了。当玩家创建完角色之后,会马上请求返回玩家的信息,这是就会去查询玩家的Level表。这时候触发器有可能会没有完成数据库中Level表的操作,导致读出来的数据为空。解决方案:由于触发器操作在程序中没办法控制,所以只好抛弃它了。在User表中插入数据的之后,继续在Level表中增加一条记录,然后在返回数据。三 全服排行问题:要全服排行榜,要拿到所有服上玩家的数据做比较。由于分布式架构,玩家的数据库之中,,是拿不到彼此的数据。解决方案:拿出一个单独的服务器来生成玩家的UID,使得所有的玩家UID都不重复。然后将需要比较的玩家数据比如说战力或者等级,也放到对应的UID记录中。这样,每次排行只需要到排行服务器来查找就可以了。

人总是珍惜未得到的,而遗忘了所拥有的

服务端开发笔记三:pemelo开发过程中遇到的问题

相关文章:

你感兴趣的文章:

标签云: