SSE vs WebSocket: den richtigen Stream wählen

SSE vs WebSocket

SSE vs WebSocket: Welche Echtzeit-Option du nutzen solltest | We.Inc

Server-Sent Events vs WebSockets: EventSource und WebSocket im Vergleich, Wiederverbindung, Binärdaten, Verbindungslimits, eine Entscheidungshilfe und minimale Node-Server für beide.

Server-Sent Events streamen Text vom Server zum Browser über eine gewöhnliche HTTP-Antwort, und die EventSource-API verbindet sich selbstständig neu. Ein WebSocket wandelt die Verbindung in einen bidirektionalen Kanal um, der Text oder Binärdaten in beide Richtungen überträgt. Nutze SSE für Feeds, Benachrichtigungen und Fortschrittsanzeigen; nutze WebSockets, wenn der Browser häufig Nachrichten zurücksenden muss.

Direkter Vergleich

Du bist nicht sicher, was deine Funktion braucht? Hake in der Hilfe unten die Aussagen an, die auf sie zutreffen. Sie wendet dieselben Regeln wie die Tabelle oben an und sagt dir, welche API passt und warum.

Häufige Fragen

Kann der Browser mit SSE Daten an den Server senden?

Nicht über den Stream selbst. Der Event-Stream fließt nur vom Server zum Client, daher sendet der Browser seine Nachrichten mit gewöhnlichen fetch-Requests. Für chatähnlichen Verkehr in beide Richtungen ist ein WebSocket die sauberere Lösung.

Wie verhindere ich, dass EventSource sich neu verbindet?

Rufe auf dem Client close() auf. Auf Serverseite sagt der HTML-Standard, dass eine Antwort mit 204 No Content dem Client mitteilt, keine neue Verbindung mehr aufzubauen.

Kann ich mit EventSource einen Authorization-Header senden?

Nein. Der Konstruktor nimmt nur eine URL und ein Optionsobjekt, dessen einzige Einstellung withCredentials ist. Nutze ein Cookie, ein kurzlebiges Token in der URL oder einen fetch-basierten Reader, wenn du eigene Header brauchst.

Ist SSE veraltet, seit es WebSockets gibt?

Nein. Das Format text/event-stream ist für Einweg-Feeds weiterhin eine gute Wahl, weil es ohne Protokollwechsel über normale HTTP-Server, Proxys und Authentifizierung läuft.

Was verbraucht weniger Serverressourcen?

Beide halten pro Client eine langlebige Verbindung, der Unterschied ist also gering. Wichtiger ist, ob dein Hoster langlebige Antworten oder Protokoll-Upgrades überhaupt erlaubt, prüfe also zuerst seine Limits für die Request-Dauer.

Wie Server-Sent Events funktionieren

Wie WebSockets funktionieren

Eine schnelle Faustregel

Server-Sent Events: minimaler Code

SSE-Server in reinem Node

Keine Bibliothek nötig. Die Antwort bleibt offen; jeder Schreibvorgang ist ein Event, und die Kommentarzeile verhindert, dass inaktive Proxys sie schließen.

EventSource im Browser

addEventListener nutzt den Event-Namen aus dem Stream. Die Wiederverbindung passiert ohne eigenen Code.

WebSocket: minimaler Code

WebSocket-Server mit dem Paket ws

Installiere es mit npm install ws. Der Server sendet jede Nachricht in Großbuchstaben an den Client zurück, der sie geschickt hat.

WebSocket im Browser, mit einfacher Wiederverbindung

Anders als bei EventSource verbindet sich nichts automatisch neu, daher wartet dieser Code nach close kurz und öffnet einen neuen Socket.

Der Browser sendet viele Nachrichten zurück, mehrere pro Sekunde oder mehr

Die Daten sind binär, etwa Audio-Chunks oder Puffer mit Spielzuständen

Clients müssen nach einem Verbindungsabbruch verpasste Events nachholen

Der Verkehr läuft über Proxys oder Hosting, die nur einfaches HTTP verarbeiten

Server-Sent Events passen. Nichts, was du angehakt hast, braucht einen bidirektionalen Kanal, und EventSource liefert dir Wiederverbindung und Fortsetzung gratis.

Ein WebSocket passt. Du brauchst häufige Nachrichten vom Browser oder Binärdaten, die ein Event-Stream nicht übertragen kann.

Was passt zu deiner Funktion?

Hake an, was auf deine Funktion zutrifft

Empfehlung

Server-Sent Events

WebSocket

Kostenlos starten · Keine Kreditkarte nötig

Verwandt: Ratgeber

Produkt

Für wen

Funktionen

Ressourcen

Unternehmen

Sitemap