million_game_server icon indicating copy to clipboard operation
million_game_server copied to clipboard

3..6.8 登出流程的代码完善

Open MaoningGuan opened this issue 2 years ago • 1 comments

image 这里加多一句代码,防止玩家还没完成登录时,agentmgr没有回复仲裁,而导致s.resp.kick没被调用,从而没有清空conns[fd]

MaoningGuan avatar Oct 06 '22 12:10 MaoningGuan

其实直接清空conns[fd]也还不太完善,因为在“还没完成登录时下线”的情况下,除了gateway,agentmgr也可能会记录一些玩家信息,这些信息不会被清除。

在3.15“改进”中,也提及了下这种情况,或可以在gateway中记录断线的连接,待走完登录流程再定时发起下线流程。

登录流程的一种意外情况:尽管登录流程已相对完善,但还存在一种意外情况。当客户端发起登录协议后,在登录协议返回之前下线。由于此时agentmgr记录的是“登录中”状态,下线请求不会被执行,除非再次登录踢下线,否则agent会一直存在。这种情况不常出现,解决方法是让gateway和agent之间偶尔发送心跳协议,若检测到客户端连接已断开,则请求下线。

luopeiyu avatar Oct 09 '22 13:10 luopeiyu