Zum Inhalt springen

SSE (Server-Sent Events)

Server-Sent Events sind ein unidirektionaler HTTP-Stream: Der Server sendet, der Client hört zu. Restorm macht daraus einen vollwertigen Anfragetyp.

Rechtsklick im Baum ▸ Hinzufügen ▸ SSE-Anfrage.

Ein verbundener SSE-Tab: rechts erscheint jedes empfangene Ereignis mit seinem Zeitstempel, seinem Namen („ping“) und seiner Nutzlast (einer Sequenznummer).

FeldRolle
URLDer Endpunkt des Streams
HeaderDie Header der Eröffnungsanfrage — hier läuft die Authentifizierung
Letzter Ereignis-IdentifikatorStartwert für den Last-Event-ID-Header, nur bei der ersten Verbindung gesendet

Restorm folgt der EventSource-Spezifikation: Es analysiert die Felder event:, data:, id: und retry: und zeigt jedes empfangene Ereignis mit Zeitstempel, Namen und Nutzlast an — ein Klick auf ein Ereignis klappt den vollständigen Inhalt auf. Der Identifikator wiederum wird für den Reconnect gespeichert.

Bei einem Abbruch sendet der Reconnect automatisch den zuletzt empfangenen Identifikator in Last-Event-ID erneut — so kann der Server dort weitermachen, wo er stehen geblieben ist.

Der Stream ist nur empfangend: Sobald die Verbindung offen ist, gibt es nichts zu senden.

Zwei Aktionen: SSE-Verbindung (Ausgänge connected und message, eine Emission pro empfangenem Ereignis) und SSE-Verbindung schließen. Siehe Verbindungen und Streams.

Das übliche Muster: den Stream öffnen, die fachliche Aktion per HTTP-Aufruf auslösen, dann mit einer Assertion prüfen, dass das erwartete Ereignis tatsächlich am Port message ankommt.

Drei Ziele: cURL, browserseitige EventSource, Python (Requests im Stream).