Используя Socket.IO, как я могу узнать идентификатор сеанса отключенного пользователя? - PullRequest
3 голосов
/ 25 января 2012

Когда пользователь отключается от сервера, как я могу узнать идентификатор сеанса?

В настоящее время у меня есть отвратительный способ попросить всех существующих клиентов отправить сообщение обратно.

например на сервере:

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

Ответы [ 2 ]

8 голосов
/ 28 января 2012

При подключении вы можете прикрепить любые данные к сокету:

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];
  }
}
2 голосов
/ 26 января 2012
socket.on('disconnect', function() {
    console.log(this.id);
});

даст вам идентификатор сокета, который был закрыт, но это скорее хак ...:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...