我正在建立简单的学习聊天应用程序使用node.js的快速框架。我有一个问题。如果用户有多个选项卡活动,并且他在一个选项卡上登出。我想关闭与其他选项卡的连接并重定向到登录页面。但我遇到了一个问题。即使用户注销了其他套接字会话,也不会更改(我使用的是passport.socketio包,因此socket.handshake.user上有当前用户)。我做错什么了?提前谢谢。
发布于 2013-10-21 06:36:10
如果您有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')现在,在客户端,您可以在重定向到所需位置的“注销”上编写事件侦听器。
发布于 2013-10-20 21:09:40
在你的应用程序中,你必须查看所有打开的套接字,找到匹配的用户名并手动终止它们。
https://stackoverflow.com/questions/19482860
复制相似问题