Я знаю, как получить клиентский идентификатор сеанса при подключении пользователя.Socket.io: Получить идентификатор клиента в любой точке
Но я хотел бы получить его в любое время, например, когда клиент нажимает на что-то, я хотел бы знать, кто нажал, что такое идентификатор 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 соединение сокета будет потеряно (они не будут сохраняться при загрузке страниц), и вашему клиенту придется повторно подключиться (и получить новый сокет Я бы). – robertklep
@robertklep Оооо хорошо. Но их 'handshake.sessionID' должен оставаться тем же, не так ли? –
Похоже, что вы должны использовать cookie для хранения 'clientId', поэтому он всегда уникален для каждого клиента. – megawac