# WebSocket Server with Express and Socket.IO 🚀
Un servidor WebSocket básico implementado con Node.js, Express y Socket.IO, ideal para aplicaciones que requieren comunicación en tiempo real.




## Características principales ⚡
- **Conexiones en tiempo real** usando WebSocket
- **Soporte CORS** para conexiones cruzadas
- Manejo de eventos personalizados (`mensaje` y `respuesta`)
- Escalable y fácil de integrar
- Configuración de puerto flexible (usando variable de entorno `PORT`)
## Instalación 🔧
1. Clona el repositorio:
```bash
git clone https://github.com/alejandro-castillo-delgado/websocket.git
cd websocket- Instala las dependencias:
npm install express socket.io cors- Inicia el servidor:
node index.jsconst express = require('express');
const http = require('http');
const socketIO = require('socket.io');
const cors = require('cors');
const app = express();
app.use(cors());
const server = http.createServer(app);
const io = socketIO(server);
io.on('connection', (socket) => {
console.log('Cliente conectado');
socket.on('mensaje', (data) => {
console.log('Mensaje recibido:', data);
socket.emit('respuesta', '¡Mensaje recibido por el servidor!');
});
socket.on('disconnect', () => {
console.log('Cliente desconectado');
});
});
const port = process.env.PORT || 3000;
server.listen(port, () => {
console.log(`Servidor WebSocket iniciado en el puerto ${port}`);
});<script src="https://cdn.socket.io/4.7.2/socket.io.min.js"></script>
<script>
const socket = io('http://localhost:3000');
// Enviar mensaje al servidor
socket.emit('mensaje', 'Hola servidor!');
// Escuchar respuestas del servidor
socket.on('respuesta', (data) => {
console.log('Respuesta del servidor:', data);
});
</script>| Evento | Dirección | Descripción |
|---|---|---|
connection |
Servidor | Nuevo cliente conectado |
mensaje |
Cliente → Servidor | Envío de mensajes al servidor |
respuesta |
Servidor → Cliente | Respuesta del servidor al cliente |
disconnect |
Servidor | Cliente desconectado |
Cambiar puerto:
PORT=4000 node index.jsHabilitar modo debug de Socket.IO:
DEBUG=socket.io* node index.js- Node.js (v18+)
- Express.js
- Socket.IO v4
- CORS middleware
¡Las contribuciones son bienvenidas! Por favor:
- Haz fork del proyecto
- Crea una rama con tu feature (
git checkout -b feature/nueva-funcionalidad) - Haz commit de tus cambios (
git commit -m 'Add some feature') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Abre un Pull Request
MIT License - Ver LICENSE para más detalles.
Creado por Alejandro Castillo Delgado