var conectados = {
'1453137':
{
nombre: 'Pepe',
},
'4269000':
{
nombre: 'Juan',
}
}
1. Tenemos un objeto con todos los usuarios conectados al sistema.
2. La idea es que cuando un usuario cierra el navegador, se busque el identificador del usuario (el cual es un número) y se elimine del objeto.
3. El problema está en que cuando un usuario cierra el navegador, simplemente se ejecuta el evento "disconnect" de Nodejs pero no tenemos el identificador a la mano para buscar el indice y eliminarlo del objeto en el punto 1
4. Creé un segundo objeto en donde utilizo como identificador el "
socket.id" único para cada usuario y le añado el identificador de usuario:
sockets_almacenados = {}
sockets_almacenados[
socket.id] = identificador
Este segundo objeto lo uso porque en socket.on("disconnect") no puedo pasarle una sesión, pero sí puedo hacer uso de objetos globales.
5. Dentro de socket.on("disconnect") hago lo siguiente:
así obtengo el identificador y puedo acceder al objeto global con los usuarios conectados, lo busco y lo elimino así:
delete conectados[idcon];
Esto hace que mi objeto conectados quede así: {}
Básicamente ese es su funcionamiento... Alguna idea?