文档没找到相关信息,源码找到了 BusinessWorker->gatewayConnections
我在 Events::onClose 循环 gatewayConnections,调用 connection->close 后,无法判断是否有效。
目的: 希望开发阶段 reload 代码后,能自动把客户端断开,让他们重连。因为客户端连上的时候,Events::onConnect 有做一些处理,例如初始化一个游客账号,将连接与游客绑定在一起。
见截图。
试试心跳检测
已经做了心跳检测啦,我是希望开发阶段 reload 代码后,能自动把客户端断开,让他们重连。因为客户端连上的时候,Events::onConnect 有做一些处理
断开的之前先发送一个类型 内容给 客户端 这个类型专门处理失败的
嗯,按老大说的方案,发给客户端断开连接是可行。不知道有没有更好的方法
客户端连接的是gateway进程,不是连的businessWorker进程,businessWorker进程无法获取客户端连接对象。BusinessWorker->gatewayConnections 是gateway与businessWorker的内部连接,断开它们不影响客户端连接。
你可以用Gateway::sendToAll()给所有客户端发消息,让客户端自己断开重连。但是看起来这个重连好像没什么意义
那希望未进行 Gateway::bindUid 的连接以游客身份存在,并且代码 reload 后他们也能保持游客身份应该怎么做呢。更新了提问中的截图。因为很多信息都是跟的 BusinessWorker,当 BusinessWorker 重新加载后,已有连接的信息会全部丢失。当前是考虑让客户端断掉重连,这样能保证都是重新开始的。
试试心跳检测
已经做了心跳检测啦,我是希望开发阶段 reload 代码后,能自动把客户端断开,让他们重连。因为客户端连上的时候,Events::onConnect 有做一些处理
断开的之前先发送一个类型 内容给 客户端 这个类型专门处理失败的
嗯,按老大说的方案,发给客户端断开连接是可行。不知道有没有更好的方法
客户端连接的是gateway进程,不是连的businessWorker进程,businessWorker进程无法获取客户端连接对象。BusinessWorker->gatewayConnections 是gateway与businessWorker的内部连接,断开它们不影响客户端连接。
你可以用Gateway::sendToAll()给所有客户端发消息,让客户端自己断开重连。但是看起来这个重连好像没什么意义
那希望未进行 Gateway::bindUid 的连接以游客身份存在,并且代码 reload 后他们也能保持游客身份应该怎么做呢。更新了提问中的截图。因为很多信息都是跟的 BusinessWorker,当 BusinessWorker 重新加载后,已有连接的信息会全部丢失。当前是考虑让客户端断掉重连,这样能保证都是重新开始的。