node.js - 使用 Socket.IO,如何找出断开连接的用户的 session ID?

标签 node.js websocket socket.io

当用户与服务器断开连接时,如何找到 session ID?

目前我有一个丑陋的方法要求所有现有客户发回消息。

例如在服务器上:

socket.on('disconnect', function() {
    // What’s the sessionid?
});

最佳答案

建立连接后,您可以将任何数据附加到套接字:

var clients = {}
var client_id = 0;

io.sockets.on('connection', function (socket) {
  socket.client_id = client_id; // or your `session_id`
  socket.anyData = "foobar";
  clients[client_id] = socket;
  client_id++;

  socket.on("disconnect", function() {
    console.log(this.anyData) // prints: foobar
    delete clients[this.client_id];
  }
}

关于node.js - 使用 Socket.IO,如何找出断开连接的用户的 session ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8993369/

相关文章:

javascript - Socket.io 和 requirejs 依赖问题

node.js - 使用 NodeJS 和请求模块以及 aws-sdk 将图像从 Parse 移动到 S3/CloudFront

node.js - 如何在nodejs中解码deflate字符串?

javascript - 如果文件不存在则创建文件,然后将日志写入其中

java - 创建 web 应用程序的最佳方法,该应用程序通过外部客户端调用自己的其余服务来动态更新 UI

php - Laravel Websockets 仪表板基本路径与子文件夹不起作用

java - 使用 Spring Security 的 SpringMVC Websockets 消息传递用户身份验证

node.js - 获取 https://mydomain.server:6001/socket.io/socket.io.js net::ERR_CONNECTION_REFUSED

node.js - 如何在没有 redis 的情况下扩展 socket.io

javascript - 在运行时重新加载模块