GatewayWorker偶尔无法触发onclose
运行过程:
- 建立gateway
- new websocket
- 关闭页面时触发 websocket.close
- 偶尔会出现 gateway Events onClose 没有触发
- 一开始以为是页面运行时问题
- 通过Gateway::getAllClientIdList()排查后发现, register已经销毁client_id
- 也就是说, 虽然register已经销毁了client_id, 但是整个过程没有触发Events onClose
- 目前心跳是1s一次, 到50次就会固定出现此问题
求官方帮忙查看此问题
1个回答
年代过于久远,无法发表回答
ps auxf,看下是不是运行了多个gatewayWorker
没有哈, 运行多个不会导致register查不到client_id的
感觉你用了什么特殊用法导致的,你可以下载个workerman-chat,看下是否有问题。
workerman-chat 离线会触发onClose,然后删除用户列表。
@1393:根据你的思路, 我去掉了event逻辑代码, 确实就正常了, 还没找到原因, 谢谢大佬