SocketIO“断开服务器端的套接字抛出错误”;在建立连接之前,WebSocket已关闭;
我想在SocketIO中对每个房间的用户进行身份验证。其工作原理如下:客户端调用connect(),然后发出一个名为“joinRoom”的事件以加入特定的文件室。客户端在发出“joinRoom”事件时提供身份验证信息和他想要加入的房间 我的服务器端代码如下所示:SocketIO“断开服务器端的套接字抛出错误”;在建立连接之前,WebSocket已关闭;,websocket,socket.io,Websocket,Socket.io,我想在SocketIO中对每个房间的用户进行身份验证。其工作原理如下:客户端调用connect(),然后发出一个名为“joinRoom”的事件以加入特定的文件室。客户端在发出“joinRoom”事件时提供身份验证信息和他想要加入的房间 我的服务器端代码如下所示: io.on('connection', (socket) => { socket.on('joinRoom', async (token, room) => { try { await
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()”时,它工作正常(此处没有错误!)
这样的设计或功能甚至可以实现吗
提前谢谢