Socket.io:随时获取Client sessionID

Rom*_*aun 7 javascript sockets node.js express socket.io

我知道如何在用户连接时检索客户端sessionID.

但我想随时检索它,例如当客户点击某些内容时,我希望能够知道谁点击了,他们的sessionID是什么.

socket.sessionID 不起作用,也不起作用 socket.handshake.sessionID

例如 :

我有这个明确的路线:

.get('/result/:survey', function(req, res) {
    res.redirect('/result/'+req.params.survey+'/1');
})
Run Code Online (Sandbox Code Playgroud)

在重定向之前,我想让用户加入套接字室,并获得他们的sessionID.我怎么可能这样做?根据该文档,它将是socket.join('room')但我怀疑socket只代表我与客户的连接,而不是与其他客户的连接.也许我只是在理解插座时遇到了麻烦!

Jan*_*anS 19

从版本1.0开始,您可以通过以下方式获取客户端的sessionid:

var socket = io();
socket.on('connect', function(){
    var sessionid = socket.io.engine.id;
    ...
});
Run Code Online (Sandbox Code Playgroud)