23 puntos por xguru 2022-02-14 | 5 comentarios | Compartir por WhatsApp
  • Al crear aplicaciones web en tiempo real, normalmente se piensa en WebSockets, pero SSE también puede ser una alternativa simple

  • Problemas de los WebSockets: como no están basados en HTTP, no aprovechan los beneficios de HTTP

→ no se pueden comprimir, el soporte para multiplexación de HTTP/2 es limitado, los proxies no los soportan, es posible el secuestro de conexión

  • Server-Sent Events (SSE)

→ una funcionalidad que permite al servidor enviar eventos push de baja latencia al cliente

→ es un estándar de HTML y todos los navegadores lo soportan (excepto IE)

→ a diferencia de WebSockets, SSE tiene un flujo unidireccional del servidor al cliente (no es adecuado para juegos que requieren comunicación bidireccional)

→ funciona sobre HTTP y no requiere un protocolo adicional

5 comentarios

 
minhoryang 2022-02-18

En entornos con Load Balancer o Proxy, suele haber poco soporte para SSE. (+ firewall empresarial)

Si están considerando entornos como Cloudflare o AWS CLB, deberían verificarlo una vez más antes de adoptar SSE.

 
cometkim 2022-02-16

También hay casos en los que se usa como transporte para GraphQL Subscription en lugar de WebSocket.

 
wan2land 2022-02-14

Puede ser una alternativa cuando es difícil implementar WebSockets en entornos especiales como Deno Deploy o Lambda. :-)

Yo también conocí SSE por primera vez hace poco mientras veía un ejemplo de chat en Deno Deploy.

https://github.com/lucacasonato/deploy_chat

 
nicewook 2022-02-14

No sabía que existía esto. Aprendo algo nuevo.

 
xguru 2022-02-14

Revisen también los comentarios de este artículo y los comentarios en HN.

Hay muchas opiniones distintas, incluyendo gente que usa SSE, casos de migración desde WebSockets y casos en los que probaron SSE y luego volvieron a WebSockets.

https://news.ycombinator.com/item?id=30312897

En realidad, el artículo habla bastante de las ventajas de SSE, pero solo resulta útil en escenarios especiales.

Últimamente también han salido muchas librerías del lado de WebSockets, así que implementarlo se ha vuelto más sencillo.

También existe ese argumento.