Introducción
Pasarela es un gateway de comunicación en tiempo real diseñado para ser inmutable y agnóstico. Su filosofía central es ser un canal de comunicación puro que no impone ninguna lógica de negocio.
¿Qué es Pasarela?
Pasarela actúa como un intermediario de mensajes en tiempo real usando WebSockets (Socket.io). Los clientes se conectan, se identifican con cualquier tipo de ID, y pueden enviar/recibir mensajes a través de canales predefinidos.
const socket = io('http://tu-servidor:5000/pasarela');
socket.emit('identificar', 'mi-usuario-123', (ok) => {
console.log('Conectado!');
});
socket.emit('pasarela', {
destino: 'nosotros',
tipo: 'saludo',
mensaje: 'Hola a todos!'
});
socket.on('pasarela', (data) => {
console.log('Mensaje recibido:', data);
});
Principios Fundamentales
🔒 Inmutabilidad
El código de Pasarela no se modifica para cada proyecto. Los proyectos que lo usan se conectan y definen su propia lógica.
🎯 Agnosticismo
El identificador puede ser cualquier cosa: un nickname, un UID de Firebase, un ID de dispositivo, un ID de sesión...
⚡ Simplicidad
Solo 3 eventos principales: identificar, notificar, pasarela.
📡 Destinos Universales
yo→ Solo al emisorustedes→ A todos excepto el emisornosotros→ A todos incluyendo el emisor
Casos de Uso
- 💬 Chat en tiempo real
- 🍕 Tracking de pedidos
- 🎫 Booking con disponibilidad en vivo
- 🎮 Juegos multijugador
- 📊 Dashboards colaborativos
- 🏠 IoT y domótica
- Y cualquier cosa que necesite comunicación en tiempo real...
Arquitectura v2.0
┌─────────────────────────────────────────────────────────┐
│ HAProxy │
│ (Balanceador) │
└─────────────┬───────────┬───────────┬───────────┬───────┘
│ │ │ │
┌──────▼──┐ ┌──────▼──┐ ┌──────▼──┐ ┌──────▼──┐
│Pasarela │ │Pasarela │ │Pasarela │ │Pasarela │
│ #1 │ │ #2 │ │ #3 │ │ #4 │
└────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘
│ │ │ │
└───────────┴─────┬─────┴───────────┘
│
┌─────────▼─────────┐
│ Redis Adapter │
└───────────────────┘
Instalación Rápida
# Clonar el repositorio
git clone https://github.com/NeftaliYagua/Pasarela.git
# Levantar con Docker
cd Pasarela/infraestructura
docker compose up -d
Accede a http://localhost:5000 para ver la página de inicio.