我正在使用node.js express框架构建简单的学习聊天应用程序。但是我有一个问题。如果用户有多个活动选项卡,并在其中一个选项卡上注销,则我希望关闭其他选项卡的连接并重定向到登录页面。但我遇到了一个问题。即使用户已经注销,其他套接字会话也没有更改(我正在使用passport.socketio包,因此我在socket.handshake.user中有当前用户)。我做错了什么吗?提前致谢。
如果您有n个不同的选项卡,实际上就是n个不同的套接字。实现您所需的一种方法是使来自特定用户的所有套接字加入单个房间。
io.on('connection', function (socket) {
socket.join(socket.handshake.user.id);
// rest of your code
}
io.sockets.in(socket.handshake.user.id).emit('logout')