Node.js 在套接字之间共享会话。(从所有活动选项卡注销用户)

Node.js 在套接字之间共享会话。(从所有活动选项卡注销用户),node.js,session,express,socket.io,Node.js,Session,Express,Socket.io,我正在使用node.js express框架构建简单的聊天应用程序。我有一个问题。 如果用户有多个活动选项卡,并且他在一个选项卡上注销。我想关闭与其他选项卡的连接并重定向到登录页面。但我遇到了一个问题。即使用户已注销,其他套接字会话也不会更改(我使用的是passport.socketio包,所以当前用户位于socket.handshake.user)。我做错了什么?提前感谢。在应用程序中,您必须查看所有打开的套接字,找到匹配的用户名并手动终止它们。如果您有n个不同的选项卡,实际上是n个不同的套接

我正在使用node.js express框架构建简单的聊天应用程序。我有一个问题。
如果用户有多个活动选项卡,并且他在一个选项卡上注销。我想关闭与其他选项卡的连接并重定向到登录页面。但我遇到了一个问题。即使用户已注销,其他套接字会话也不会更改(我使用的是passport.socketio包,所以当前用户位于socket.handshake.user)。我做错了什么?提前感谢。

在应用程序中,您必须查看所有打开的套接字,找到匹配的用户名并手动终止它们。

如果您有n个不同的选项卡,实际上是n个不同的套接字。实现所需功能的一种方法是使特定用户的所有套接字都加入一个单独的套接字

在注销代码中,向该特定房间发出“注销”事件

io.sockets.in(socket.handshake.user.id).emit('logout')

现在,在客户端,您可以在“注销”上编写一个事件侦听器,重定向到所需位置。

但是我如何处理注销?我是通过http做的。谢谢。所以我需要访问控制器上的套接字?是的,您也需要控制器中的io对象。
io.sockets.in(socket.handshake.user.id).emit('logout')