Como recordatorio, este proyecto se está construyendo sobre el siguiente proyecto de inicio en Glitch , o clonado desde GitHub . Muchas salas de chat pueden anunciar cuando un usuario se conecta o desconecta y luego se lo muestran a todos los usuarios conectados en el chat. Al ver que ya está emitiendo un evento al conectarse y desconectarse, solo tendrá que modificar este evento para admitir dicha función. La forma más lógica de hacerlo es enviar 3 datos con el evento: nombre del usuario conectado / desconectado, el recuento actual de usuarios, y si ese nombre está conectado o desconectado.
Cambie el nombre del evento a "usuario" y, a medida que los datos pasan un objeto a lo largo de los campos que contienen "nombre", "usuarios actuales" y "conectado" booleano (para ser verdadero si la conexión, o falso para la desconexión del usuario enviado). Asegúrese de realizar el cambio en los dos puntos en los que tuvimos el evento 'cuenta de usuario' y configure la desconexión para que sea falsa para el campo 'conectado' en lugar de verdadero como el evento emitido en la conexión. io.emit('user', {name: socket.request.user.name, currentUsers, connected: true});
¡Ahora su cliente tendrá toda la información necesaria para mostrar correctamente el recuento actual de usuarios y avisar cuando un usuario se conecte o desconecte! Para manejar este evento en el lado del cliente, debemos escuchar al 'usuario' y luego actualizar el conteo actual de usuarios usando jQuery para cambiar el texto de #num-users
a '{NÚMERO} usuarios en línea', así como agregar un <li>
a la lista no ordenada con id 'mensajes' con '{NOMBRE} ha {unido / dejado} el chat'. Una implementación de esto podría parecerse a la siguiente: socket.on ('usuario', función (datos) {
$ ('# num-users'). text (data.currentUsers + 'usuarios en línea');
mensaje var = nombre.datos;
if (data.connected) {
mensaje + = 'se ha unido al chat.';
} else {
mensaje + = 'ha salido del chat.';
}
$ ('# messages'). append ($ ('<li>') .html ('<b>' + message + '<\ / b>'));
});
Envía tu página cuando creas que lo has hecho bien.
## Instructions