Hola, creo que hay un bug en el código propuesto en el ejercicio. Cuando se desconecta una segunda socket, la iteración da un error porque no encuentra s.id de la primera socket porque s = null. Yo lo he solucionado así:
socket.on('disconnect',function(){
Object.keys(sockets).forEach(userId=>{
let s = sockets[userId];
if (s != null){
if(s.id == socket.id) sockets[userId] = null;
}
});
Aunque seguro hay alguna forma más elegante.
Hasta luego!
socket.on('disconnect',function(){
Object.keys(sockets).forEach(userId=>{
let s = sockets[userId];
if (s != null){
if(s.id == socket.id) sockets[userId] = null;
}
});
Aunque seguro hay alguna forma más elegante.
Hasta luego!