2012-01-24 34 views
3

当用户断开与服务器的连接时,如何找到会话ID?使用Socket.IO,我如何找出断开用户的会话ID?

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

例如

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

我不认为我的答案提供了足够的实际回答问题,所以我删除它。但是,我认为这个链接可能有所帮助:http://chrissilich.com/blog/socket-io-0-7-sending-messages-to-individual-clients/总之,一些hackery与socket.id。 –

+0

谢谢 - 它似乎不是很明显,所以期待一点hackery! –

+1

见http://www.danielbaulig.de/socket-ioexpress/ – fent

回答

2
socket.on('disconnect', function() { 
    console.log(this.id); 
}); 

会给你这是关闭套接字的ID,但是这可能更多的是黑客攻击... :)

+0

如果这是“未定义”,这意味着什么? – Kayvar

8

您可以将任何数据附加到插座:在服务器上当连接时:

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]; 
    } 
} 
+0

这篇文章真的帮助了我,谢谢你! – RozzA

相关问题