【发布时间】:2013-11-19 05:37:17
【问题描述】:
我知道如何在用户连接时检索客户端 sessionID。
但我想随时检索它,例如当客户点击某物时,我希望能够知道谁点击了,他们的 sessionID 是什么。
socket.sessionID 不起作用,socket.handshake.sessionID 也不起作用
例如:
我有这条快速路线:
.get('/result/:survey', function(req, res) {
res.redirect('/result/'+req.params.survey+'/1');
})
就在重定向之前,我想让用户加入一个套接字房间,并获得他们的 sessionID。我怎么可能这样做?根据文档,它将是socket.join('room'),但我怀疑socket仅代表我与客户端的连接,而不是与其他客户端的连接。也许我只是无法理解套接字!
【问题讨论】:
-
一旦您重定向到另一个 URL,套接字连接将丢失(它们在页面加载时不会持久)并且您的客户端将不得不重新连接(并获取新的套接字 ID)。跨度>
-
@robertklep 哦,好吧。但是他们的
handshake.sessionID应该保持不变,对吧? -
听起来您应该使用 cookie 来存储
clientId,因此每个客户端始终是唯一的 -
handshake.sessionID不是socket.io协议的一部分,但通常通过解析会话cookie 在io.set('authorization', ...)中设置。如果这就是你正在使用的,它应该保持不变,是的。
标签: javascript node.js sockets express socket.io