08年08月12日

原因:今天游戏出现一个很严重的BUG,就是通过帐号服务器验证时,有时候验证完以后进入角色选择时,竟然出现别人的帐号角色;
这可不是一个小BUG,对于一个程序员来说可是致命的错误;由于在本地服务器测试时,同时通过验证帐号服务器的消息是十分少的,
所以在本地一开始没发现这个BUG;还有就是看来我在程序中使用全局变量实在是不好,才使得这个BUG没及时发现.
问题是这样产生的,如果很多消息同时过来请求帐号服务器,那在那个唯一一个对应帐号的数字ID为最后一个.而在登录LOGIN中的帐号
和ID传递时的ID和本身的ID是不一样的,所以才会出现这个帐号对应别人的角色列表.我恨,这个问题没意识到.

解决:先在传递的时候把帐号和ID绑定,或者用一个HASH_MAP把帐号和ID和服务器列表保存起来,再转到LOGIN服务器是时再根据用户
名找到他的ID,从而再转角色服务器.这样就不会错了!


你可能感兴趣的:(08年08月12日)