𝗨𝗻𝗱𝗲𝗿𝘀𝘁𝗮𝗻𝗱𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗲𝗿 𝗦𝗲𝗻𝘁 𝗘𝘃𝗲𝗻𝘁𝘀
Imagina que usas ChatGPT. Haces una pregunta. En lugar de ver cómo las palabras aparecen una por una, esperas 5 segundos para que toda la respuesta aparezca de golpe.
Este retraso se siente lento. Resulta frustrante.
Para solucionar esto, los desarrolladores utilizan respuestas en streaming. Esto hace que la experiencia se sienta rápida.
Los Server Sent Events (SSE) hacen esto posible.
¿Qué es SSE? SSE es un estándar para transmitir datos desde un servidor a un cliente a través de HTTP. Permite que el servidor te envíe actualizaciones en tiempo real.
Cómo funciona:
El servidor envía pequeños bloques de texto. Estos bloques utilizan campos como data, event, id y retry. Cada bloque está separado por una línea en blanco.
Ejemplo:
data: {"name": "Portal Gun", "price": 999.99}
Usos comunes de SSE:
- Streaming de chat de IA
- Notificaciones en vivo
- Logs en tiempo real
- Observabilidad del sistema
Antes de SSE, los desarrolladores utilizaban dos métodos principales para obtener actualizaciones:
Short polling El cliente solicita datos al servidor. Si los datos no están listos, el servidor envía un mensaje de espera. El cliente espera y vuelve a preguntar. Esto se repite hasta que el trabajo se completa.
Long polling El cliente solicita datos al servidor. El servidor mantiene la solicitud abierta hasta que los datos están listos o ocurre un tiempo de espera (timeout). El cliente debe reiniciar la solicitud inmediatamente después de recibir una respuesta.
Los flujos de eventos (event streams) gestionan procesos continuos. Estos procesos siguen un orden específico. Esto incluye tareas sencillas como crear un PDF o tareas complejas como transacciones bancarias.
El servidor abre un canal de comunicación con el cliente. Mantiene este canal abierto hasta que el proceso finaliza.
Fuente: https://dev.to/rishini_dharan_t/understanding-server-sent-events-3mkd