Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/01/2014, 16:21
dunga007
 
Fecha de Ingreso: febrero-2009
Mensajes: 151
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Callback node.js

Cita:
Iniciado por utan Ver Mensaje
Hola,

Ya que usuariosConectados[i].id == rows[0].id son iguales , solo abrio otra ventana o se logeo con otro browser, lo que deves hacer es actulizar tu objeto con el nuevo socket.io..

Prueba creando una variable salvas el viejo socket.id como el id de la base de datos es el mismo entonces actualizas tu objeto , rows[0].display_name y socket.id después mandas el emit a usuario al que le pertenece el viejo id el de la variable , sin necesidad de borrarlo de usuariosConectados..

Ya que como todo es asyncronico cuando mandas el disconnect a la ventana antigua , la ventana nueva es salvada en tu usuariosConectados borrandolo y quizás mandando el disconnect también a la nueva ventana.
Hola utan!, muchas gracias por tu colaboracion, entiendo perfectamente lo que decis y tenes toda la razon en el razonamiento... el tema es que cuando lo desconecto al usuario viejo se dispara automaticamente esto (que lo tengo para cuando el usuario cierra el navegador):

Código HTML:
socket.on('disconnect', function () 
		{
			//Eliminamos al usuario del objeto
			delete usuariosConectados[socket.identificador];			
			//Mandamos la información a las Sockets para que se borre de la lista
			socket.broadcast.emit("usuarioDesconectado",socket.identificador);
		});
En socket.identificador es:

Código HTML:
socket.identificador=rows[0].id;
Por eso se me habia ocurrido usar callbacks para que luego de que haya hecho todo el proceso de desconexion recien se actualice o se agrege al objeto, pero no se como hacerlo . Espero pueden ayudarme porque esta muy complicado...