我将尝试在socket.io上验证连接.
目前,用户首先通过REST API进行身份验证,然后,我向用户发送JsonWebToken
带有经过身份验证的用户的用户名.在我打开客户端和服务器之间的连接后,我的计划是暂时从连接的套接字列表中删除该套接字,以防止在执行身份验证时在服务器之间接收和发送数据.
在此身份验证中,我验证令牌,如果令牌有效,我将套接字的id重新添加到已连接套接字列表中.唯一的问题是第一部分不起作用.我似乎无法从列表中删除套接字.
为了测试这一点,我做了以下几点.
io.on('connection', function(socket){
//temp delete socket
delete io.sockets.connected[socket.id];
console.log(io.sockets.connected);
socket.emit("test");
});
Run Code Online (Sandbox Code Playgroud)
如您所见,我删除套接字并发出测试事件以查看套接字是否仍处于打开状态.客户端收到的消息不应该是.
有谁知道为什么会这样?