23 Punkte von xguru 2022-02-14 | 5 Kommentare | Auf WhatsApp teilen
  • Wenn man Echtzeit-Webanwendungen entwickelt, denkt man meist zuerst an WebSockets, aber auch SSE kann eine einfache Alternative sein

  • Probleme von WebSockets: Da sie nicht auf HTTP basieren, profitieren sie nicht von den Vorteilen von HTTP

→ keine Komprimierung möglich, unzureichende Unterstützung für HTTP/2-Multiplexing, Proxys unterstützen sie nicht, Hijacking möglich

  • Server-Sent Events (SSE)

→ eine Funktion, mit der der Server Low-Latency-Push-Events an den Client senden kann

→ ist ein HTML-Standard und wird von allen Browsern unterstützt (außer IE)

→ anders als bei WebSockets verläuft der Datenfluss bei SSE nur in eine Richtung, vom Server zum Client (für Spiele mit bidirektionaler Kommunikation ungeeignet)

→ läuft über HTTP und benötigt kein separates Protokoll

5 Kommentare

 
minhoryang 2022-02-18

In Umgebungen mit Load Balancern oder Proxys ist die Unterstützung für SSE oft unzureichend. (+ Enterprise Firewall)

Wenn Sie Umgebungen wie Cloudflare oder AWS CLB in Betracht ziehen, sollten Sie dies vor der Einführung von SSE noch einmal überprüfen.

 
cometkim 2022-02-16

Sie wird in manchen Fällen auch als Transport für GraphQL Subscriptions anstelle von WebSockets verwendet.

 
wan2land 2022-02-14

Das kann eine Alternative sein, wenn es schwierig ist, WebSockets in speziellen Umgebungen wie Deno Deploy oder Lambda zu implementieren. :-)

Auch ich habe SSE erst vor Kurzem kennengelernt, als ich mir ein Chat-Beispiel auf Deno Deploy angesehen habe.

https://github.com/lucacasonato/deploy_chat

 
nicewook 2022-02-14

So etwas gibt es also. Wieder etwas gelernt.

 
xguru 2022-02-14

Siehe dazu auch die Kommentare zu diesem Artikel und die Kommentare auf HN.

Es gibt viele unterschiedliche Meinungen, darunter von Leuten, die SSE verwenden, von Fällen, in denen von WebSockets umgestiegen wurde, und von Fällen, in denen man erst zu SSE gewechselt und dann wieder zu WebSockets zurückgekehrt ist.

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

Tatsächlich spricht der Artikel zwar viel über die Vorteile von SSE, wirklich nützlich ist es aber nur in speziellen Szenarien.

Heutzutage gibt es auch viele Bibliotheken für WebSockets, sodass die Implementierung einfacher geworden ist.

Auch diese Auffassung gibt es.