Estoy usando WebSockets npm install ws
en el mismo puerto en el que se está ejecutando Express.¿Cómo puedo obtener el ID de sesión (Express) para una conexión websocket?
Me gustaría recoger el 'sessionID' asociado de la conexión HTTP que acaba de crearse y actualizarse a WebSocket.
// start express listening
server.listen(conf.server.port, conf.server.host);
var WebSocketServer = require('ws').Server
, wss = new WebSocketServer({server: server});
wss.on('connection', function(ws) {
var sessionID = // how do I get this?
ws.on('message', function(message) {
console.log('received: %s', message);
});
ws.send('something');
});
¿Cómo se puede hacer esto?
(actualmente trabajo en torno al tema mediante el envío de la Id.sesión en la página, pero esto es feo.)
Está en el camino correcto, pero no hay una cookie 'sid'. Hay: 'connect.sid: n8Pbh5hPhNNC3B6PAkyuaRgv.o9wnmI3fiJ47kJMUfW0xVcMRkhjFkMbgvki/CTtemvU' y' sessionid: 12d2b0c6f3c3eb661215a401d1942122'. ¿Cuál de estas es la clave de la sesión y cuál es la otra? – fadedbee
'connect.sid' es la clave predeterminada para cookie express. En el ejemplo anterior, el código express fue configurado con la clave de sesión es 'sid' ... si no lo personalizas, la clave es 'connect.sid'. – nguyenkha
Ah, mi culpa es solo por pegar la mitad de tu código. – fadedbee