SocketIO“断开服务器端的套接字抛出错误”;在建立连接之前,WebSocket已关闭;

SocketIO“断开服务器端的套接字抛出错误”;在建立连接之前,WebSocket已关闭;,websocket,socket.io,Websocket,Socket.io,我想在SocketIO中对每个房间的用户进行身份验证。其工作原理如下:客户端调用connect(),然后发出一个名为“joinRoom”的事件以加入特定的文件室。客户端在发出“joinRoom”事件时提供身份验证信息和他想要加入的房间 我的服务器端代码如下所示: io.on('connection', (socket) => { socket.on('joinRoom', async (token, room) => { try { await

我想在SocketIO中对每个房间的用户进行身份验证。其工作原理如下:客户端调用connect(),然后发出一个名为“joinRoom”的事件以加入特定的文件室。客户端在发出“joinRoom”事件时提供身份验证信息和他想要加入的房间

我的服务器端代码如下所示:

  io.on('connection', (socket) => {
    socket.on('joinRoom', async (token, room) => {
      try {
        await validateToken(token);
        socket.join(room); // user is permitted to join room
        socket.emit('success', `Successfully joined room ${room}`);
      } catch (error) {
        // user has no permission to join room
        socket.emit('error', error.title);
        socket.disconnect(); // causes error "Websocket is closed before connection ..."
      }
  });
}
我假设造成上述错误的原因是SocketIO首先建立了一个长轮询请求,然后在稍后升级到WebSocket连接。在等待3秒的计时器函数中包装行“socket.disconnect()”时,它工作正常(此处没有错误!)

这样的设计或功能甚至可以实现吗

提前谢谢