码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-05-22 21:15:41      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:pomelo   nodejs   

一 登录顶号

问题:
首先需要弄明白的是,一个客户端只有一个pomelo实例。
当用户登录之后,不退出,重启客户端。
服务器检测到玩家已经登录,会将之前的登录踢下线,客户端会触发disconnect事件,在disconnect中断开pomelo链接。
这样导致当前的链接也被断掉了。


解决方案:
目前处理方式是在disconnect中不断开链接。但这样处理有个问题,当服务器链接不上时,会有一个报错。
原因目前还在查找,找到了再来更新,有路过的小伙伴儿有其他的解决方案也欢迎留言讨论。


二 数据库触发器

问题:
数据库中有两种表User和Level,添加了一个触发器,当在User表中插入数据时,
在Level表中也生成一条记录,保存玩家初始的关卡数据。
这种的设定看上去合符逻辑,没有问题,但是运行的时候问题出来了。
当玩家创建完角色之后,会马上请求返回玩家的信息,这是就会去查询玩家的Level表。
这时候触发器有可能会没有完成数据库中Level表的操作,导致读出来的数据为空。


解决方案:
由于触发器操作在程序中没办法控制,所以只好抛弃它了。
在User表中插入数据的之后,继续在Level表中增加一条记录,然后在返回数据。


三 全服排行

问题:
要全服排行榜,要拿到所有服上玩家的数据做比较。由于分布式架构,玩家的数据库之中,是拿不到彼此的数据。


解决方案:
拿出一个单独的服务器来生成玩家的UID,使得所有的玩家UID都不重复。
然后将需要比较的玩家数据比如说战力或者等级,也放到对应的UID记录中。
这样,每次排行只需要到排行服务器来查找就可以了。

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

标签:pomelo   nodejs   

原文地址:http://blog.csdn.net/xufeng0991/article/details/45920635

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!