Aprende a implementar comunicación en tiempo real construyendo un chat desde cero
El objetivo de este taller es que aprendas a implementar WebSockets utilizando Socket.IO para crear comunicación bidireccional en tiempo real entre un servidor y múltiples clientes.
La idea es que construyas el chat por tu cuenta, investigando y utilizando los recursos disponibles en internet (documentación de Socket.IO, tutoriales, etc.). Los archivos de inicio tienen comentarios guía con los pasos a seguir, pero tú debes escribir el código.
💡 Tip: La documentación oficial de Socket.IO es tu mejor amigo: https://socket.io/docs/v4/
websocket-taller/
├── start/ # 👈 Aquí trabajas tú
│ ├── client/ # Frontend React + Vite
│ └── server/ # Backend Express + Socket.IO
│
└── final/ # ✅ Solución completa (solo si te atascas)
├── client/
└── server/
start/: Contiene el código base con TODOs y pistas para que implementes la funcionalidad de WebSockets.final/: Contiene la solución completa. Úsala solo como referencia si te quedas muy atascado.
Antes de comenzar, asegúrate de tener instalado:
- Node.js - Versión 22 o superior
- npm - Viene incluido con Node.js
Para verificar tu versión de Node:
node --version # Debe ser v22.x.x o superiorgit clone https://github.com/Andr3xDev/websocket-taller.git
cd websocket-tallerDebes instalar las dependencias tanto del cliente como del servidor:
# Instalar dependencias del servidor
cd start/server
npm install
# Instalar dependencias del cliente
cd ../client
npm installNecesitas dos terminales para correr el proyecto:
Terminal 1 - Servidor:
cd start/server
npm run devEl servidor correrá en: http://localhost:3050
Terminal 2 - Cliente:
cd start/client
npm run devEl cliente correrá en: http://localhost:5175
- Importar e inicializar Socket.IO
- Manejar el evento
connectionpara nuevas conexiones - Escuchar eventos:
join,chat-message,disconnect - Emitir eventos:
message,user-joined,user-left
- Importar y conectar a Socket.IO
- Escuchar eventos:
message,user-joined,user-left - Emitir eventos:
join,chat-message - Manejar la desconexión al desmontar el componente
- 📖 Documentación oficial de Socket.IO
- 🎥 Socket.IO en 100 segundos (Video)
- 📝 Guía de inicio rápido
- 🔧 API del servidor
- 🔧 API del cliente
Cuando completes el taller, tendrás un chat funcional donde:
- ✨ Múltiples usuarios pueden conectarse simultáneamente
- 💬 Los mensajes se envían y reciben en tiempo real
- 👋 Se notifica cuando alguien entra o sale del chat
- 🔄 La comunicación es bidireccional (cliente ↔ servidor)
- Lee los comentarios TODO en los archivos - tienen pistas útiles
- Consulta la documentación de Socket.IO
- Revisa la carpeta
final/si necesitas ver la solución
