Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/07/2013, 03:16
kikeking1
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 17
Pregunta Cambiar valor de variable en session desde callback de socket

Código Javascript:
Ver original
  1. socket.on('ninja', function(state){
  2.         if(state=='off'){
  3.             client.query("UPDATE [...]", function selectCb(err, results, fields) {
  4.                 if(err){console.log('Error login'); }
  5.                 else{console.log('el usuario con id '+session['usid']+' y nombre '+session['nick']+' ha activado el modo ninja'); socket.handshake.session['login']=false; }
  6.             });
  7.         }

Un saludo comunidad, este caso me trae un poco de cabeza. Todo se gestiona con express y socket.io, uso el handshake para compartir la sessión y usar el sistema de autentificación. El problema me surge cuando quiero cambiar el valor de una variable, como se puede ver el objetivo del script es cambiar el estado del logeo en la base de datos y cambiar la variable de session, la cual uso como comprobador en otras partes del script.

El quid de la cuestion, pues que cuando hago "socket.handshake.session['login']" me cambia la "importación" que hace el handshake de la session de express, pero no la sessión real, por lo tanto cuando despliego una página y tiro de "req.session" el valor no esta modificado.

¿Alguien se conoce alguna forma de hacerlo? Lo único que encontre fue esta respuesta en stark overflow http://stackoverflow.com/questions/9...et-io-callback

Puede ser una solución, pero me parece poco fino para la gestión de sesion, el post es de hace un año y nodejs evoluciona a cada día ¿Conocen algún otro metodo? Aúnque no tengais una solución 100% efectiva, cualquier referencia o pista para la investigación me vale.

Gracias y un saludo.