React 19 de Cero a Experto / Tiempo real y sistemas distribuidos
Reto: chat en tiempo real con presencia
Juntas todo el módulo en un chat en tiempo real funcional: mensajes que van y vienen por el socket, envío OPTIMISTA (tu mensaje aparece al instante), PRESENCIA (quién está en línea) e indicador de "está escribiendo…". Lo corres en vivo con el socket simulado —mismo modelo mental que Socket.io—. Es el ensayo general del proyecto final del curso: el chat colaborativo. Cuando termines, el tiempo real no tendrá secretos.
Reto
Chat en tiempo real
Qué debes construir
Un chat en vivo con presencia, sobre el socket simulado:
- Enviar y recibir mensajes por el socket, con lista que crece y auto-scroll al último.
- Envío optimista: tu mensaje aparece al instante (marcado "enviando") y se confirma al volver del
servidor (deduplicado por
id). - Presencia: una lista de "en línea" que reacciona a eventos
"presencia"del servidor. - Indicador "escribiendo…": cuando llega un evento
"escribiendo", muestra "X está escribiendo…" por unos segundos. - Gestión correcta de la conexión: conectar en un efecto, desuscribir todos los manejadores en el cleanup.
Reglas
- Cada
socket.on(...)con susocket.off(...)en el cleanup (una conexión, sin manejadores duplicados). - Mensajes con
idgenerado en el cliente para deduplicar el optimista con su confirmación. - Todo tipado; la conexión guardada en un
ref.
45:00
Cuando estés listo, arranca el reloj.
Qué sigue
Módulo 9 conquistado: dominas el tiempo real —WebSockets, Socket.io, chat, envío optimista, presencia y salas—. Tu app puede vivir en vivo. Antes del proyecto final, el módulo 10 te lleva a NIVEL PRODUCCIÓN: rendimiento (Profiler, virtualización), code splitting, testing y arquitectura por features —lo que separa un proyecto que "funciona en mi máquina" de uno listo para usuarios reales—.