Tema: Desconexion
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/01/2014, 23:18
dunga007
 
Fecha de Ingreso: febrero-2009
Mensajes: 151
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Desconexion

Cita:
Iniciado por utan Ver Mensaje
Hola,

En tu logica , cuando haces la connection debes cerciorarte de que cuando se conecta para por tu login y este se le de las propiedades en el objeto..

Esto debes también imprementarlo cuando el socket se desconecta por alguna razón, veo que tu problema pasa por el echo que el usuario se desconecto pero estando logeado en tu aplicación lo cual el ya no tiene el mismo socket si no que se le a dado otro, y pues como no a pasado por el login de nuevo este no es salvado en el objeto de usuarios que tienes..

y por ayi va el problema...

en el cliente , coloca un lisitener de deconecion y asi te daras cuenta que el problema es que se conecto y reconecto.. el cual aunque se aya reconectado no tiene el socket antiguo...

espero me entiendas , tu problema es de session..
Sisi entiendo perefcto lo que dices... mira esto tengo

Código HTML:
io.sockets.on('connection', function (socket) {
    
    socket.on('verifico_permisos', function (data) {
        
            connection.query("SELECT id,display_name from users where user_login = '"+data['usuario']+"' and user_pass='"+data['pass']+"'", function(err, rows, fields) {
                
                socket.identificador=rows[0].id+'_'+new Date().getTime();

                //Lo agrego al objeto
                usuariosConectados[socket.identificador]={
                                        'id':rows[0].id,
                                        'nombre': rows[0].display_name,
                                        'socket': socket.id,
                                        'identificador':socket.identificador,
                                        };
                
                usuario=[socket.identificador,rows[0].display_name];
                //envio a los usuarios conectados el nuevo usuario                			
                socket.broadcast.emit("conectado",usuario);
                //envio al nuevo usuario la lista de todos los usuarios                    
                socket.emit("me_conecte",usuariosConectados);             
                  	
            })
          });
Alli cuando el usuario ingresa pasa por esa revision... si se desconectara no deberia saltar esta otra funcion que tengo tambien:

Código HTML:
socket.on('disconnect', function () 
		{
			//Eliminamos al usuario de los conectados
			delete usuariosConectados[socket.identificador];			
			//Mandamos la información a las Sockets
			socket.broadcast.emit("usuarioDesconectado",socket.identificador);
     
		});
¿Podrias darme un ejemplo de como colocar el listener que dices?

Mil gracias por tu ayuda!!!