Socket.io 会话管理?

Posted

技术标签:

【中文标题】Socket.io 会话管理?【英文标题】:Socket.io Session Management? 【发布时间】:2014-06-19 14:20:36 【问题描述】:

嘿,我正在查看 socket.io,我想知道即使在断开连接后 socket.id 是否仍然存在?我认为没有人有任何断开连接和会话管理的经验吗?

我正在考虑使用 socket.id 作为访问用户会话状态的主键。虽然我担心它不会与断开连接的用户关联,从而在服务器端留下孤立的用户。

【问题讨论】:

【参考方案1】:

Socket.io 在断开连接后发出disconnect 事件。所以当断开连接事件被触发时,你可以清除用户的会话。

服务器

io.sockets.on('connection', function(socket) 

   socket.on('disconnect', function(data) 
      console.log('socket '+ socket.id + 'disconnected!');

      //delete the users socket here with socket.id
   );
);

这个答案(https://***.com/a/17311682/453486) 有助于用户的连接和断开

【讨论】:

以上是关于Socket.io 会话管理?的主要内容,如果未能解决你的问题,请参考以下文章

PHP、nodeJS 和会话

带有快速会话的 ReactJS 和 socket.io - 套接字未使用正确的会话并创建了许多其他会话

socket.io 和 express 4 个会话

重定向时丢失会话(node.js + socket.io)

没有 express.js 的 Socket.io 会话?

PHP + socket.io(会话、授权和安全问题)