gatewayworker pingInterval 设置20 pingNotResponseLimit 设置2 pingData 设置 '' ,偶尔还是有的链接没有执行onClose方法,请问可能是什么原因呢
没看到其它进程配置。会不会有可能判断onClose执行没执行的方法有问题?
另外看到初始化多个gateway,每个gateway使用的是不同的register,意思是要启动多个互相独立gatewayWorker?
建议不要启动多个独立gatewayWorker,使用只启动一个gatewayWorker测试下,有可能是因为启动多个gatewayWorker但是进程配置没设置好。
还有把所有进程都停止,然后用 ps auxf 命令看下,是不是有残余的GatewayWorker进程。进程没停止干净也可能导致问题。
相互独立的GatewayWorker 进程模型,做游戏开发涉及到房间,同一个房间内玩家只能在同一个进程, onClose 后玩家执行下线,数据存储操作,发现个别玩家并没有执行下线逻辑
估计和我遇到的问题一样,极端网络情况下业务代码逻辑没处理好造成的。
https://wenda.workerman.net/question/5755
查看 vender/workerman/workerman.log 并没有报错信息产生,没有进程重启日志,onClose 却没收到,下线逻辑处理不了 ,导致用户无法再次登录,业务逻辑限制在线玩家再次登录,必须下线处理完才能登录
@4786:这和报错没什么关系,客户端极端网络环境,比如我那个情况触发了onMessage同时也立即触发了onClose,这也导致我onMessage里面登陆流程没走完就断开了,onClose里面获取不到登陆的用户信息。
我的用户信息不是通过session获取的 ,onClose 有client_id参数 内存里通过client_id 获取用户信息,登录的时候信息存在内存里
onClose里记录下client_id 到本地日志,看下到底执行到没。
@1459:好的
没看到其它进程配置。会不会有可能判断onClose执行没执行的方法有问题?
另外看到初始化多个gateway,每个gateway使用的是不同的register,意思是要启动多个互相独立gatewayWorker?
建议不要启动多个独立gatewayWorker,使用只启动一个gatewayWorker测试下,有可能是因为启动多个gatewayWorker但是进程配置没设置好。
还有把所有进程都停止,然后用 ps auxf 命令看下,是不是有残余的GatewayWorker进程。进程没停止干净也可能导致问题。
相互独立的GatewayWorker 进程模型,做游戏开发涉及到房间,同一个房间内玩家只能在同一个进程, onClose 后玩家执行下线,数据存储操作,发现个别玩家并没有执行下线逻辑
估计和我遇到的问题一样,极端网络情况下业务代码逻辑没处理好造成的。
https://wenda.workerman.net/question/5755
查看 vender/workerman/workerman.log 并没有报错信息产生,没有进程重启日志,onClose 却没收到,下线逻辑处理不了 ,导致用户无法再次登录,业务逻辑限制在线玩家再次登录,必须下线处理完才能登录
@4786:这和报错没什么关系,客户端极端网络环境,比如我那个情况触发了onMessage同时也立即触发了onClose,这也导致我onMessage里面登陆流程没走完就断开了,onClose里面获取不到登陆的用户信息。
我的用户信息不是通过session获取的 ,onClose 有client_id参数 内存里通过client_id 获取用户信息,登录的时候信息存在内存里
onClose里记录下client_id 到本地日志,看下到底执行到没。
@1459:好的