我正在为我的服务器上的命名空间分配套接字,类似于:
let io = require('socket.io')(port, options)
io.of('/webClient').on('connection', socket => {
socket.on('someEvent', () => console.log('do things!'));
});
但是,当我的客户端因任何原因重新连接时,他们没有进入'do things!'
例如,当我取下套接字服务器时,我的客户端会尝试自动重新连接。但是,当它们重新连接时,它们将被重新添加到命名空间和适当的房间,但是由于'connection'
事件未触发,因此未分配其处理程序。
认为我的客户正在维护某种阻止这些事件被发出的状态,我尝试使用socket.close()
手动重新连接客户端,但重新连接时仍然出现同样的问题。
谁能告诉我这里我做错了什么?如果我的套接字服务器出现故障,我需要在返回的套接字上重新运行这些事件处理程序,以便我可以响应它们上的事件。但是如果我在命名空间中没有它们的句柄,那么如何捕获它们并识别它们呢?