Principiante
20 min
Guía completa
Eventos Enviados por el Servidor (SSE)
Aprende SSE para actualizaciones en tiempo real unidireccionales con reconexión automática
¿Qué es SSE?
Server‑Sent Events permite que el servidor envíe actualizaciones al navegador mediante una conexión HTTP persistente. Es ideal para feeds, dashboards y notificaciones.
Cliente con EventSource
const source = new EventSource('/api/stream');
source.onmessage = (event) => {
const data = JSON.parse(event.data);
renderUpdate(data);
};
source.onerror = () => {
console.log('Reconectando...');
};
Servidor con Express
app.get('/api/stream', (req, res) => {
res.setHeader('Content-Type', 'text/event-stream');
res.setHeader('Cache-Control', 'no-cache');
res.setHeader('Connection', 'keep-alive');
const send = (data) => {
res.write('data: ' + JSON.stringify(data) + '\n\n');
};
const timer = setInterval(() => send({ time: Date.now() }), 1000);
req.on('close', () => clearInterval(timer));
});
IDs y reconexión
SSE soporta Last-Event-ID para reanudar el stream y evitar pérdida de eventos tras desconexiones.
// server side
res.write('id: 42\n');
res.write('data: {"message":"hola"}\n\n');
⚠️ Limitaciones
- • Solo servidor → cliente (no bidireccional)
- • Solo texto (no binario)
- • Límites de conexiones por dominio
💡 Cuándo usar SSE
- ✓ Notificaciones y feeds
- ✓ Paneles de métricas
- ✓ Actualizaciones periódicas simples