Przejdź do głównej zawartości

SSE (Server-Sent Events)

Server-Sent Events to jednokierunkowy strumień HTTP: serwer wypycha dane, klient nasłuchuje. Restorm traktuje je jako pełnoprawny typ żądania.

Kliknięcie prawym przyciskiem w drzewie ▸ Dodaj ▸ Żądanie SSE.

Zakładka SSE po nawiązaniu połączenia: po prawej każde odebrane zdarzenie pojawia się ze znacznikiem czasu, nazwą („ping”) oraz ładunkiem (numerem sekwencyjnym).

PoleRola
URLPunkt wejściowy strumienia
NagłówkiNagłówki żądania otwierającego — tędy przechodzi uwierzytelnianie
Ostatni identyfikator zdarzeniaWartość początkowa nagłówka Last-Event-ID, wysyłana tylko przy pierwszym połączeniu

Restorm przestrzega specyfikacji EventSource: analizuje pola event:, data:, id: oraz retry: i wyświetla każde odebrane zdarzenie ze znacznikiem czasu, nazwą i ładunkiem — kliknięcie zdarzenia rozwija jego pełną treść. Identyfikator jest natomiast zapamiętywany na potrzeby ponownego połączenia.

W razie przerwania łączności ponowne połączenie automatycznie wysyła ostatni odebrany identyfikator w nagłówku Last-Event-ID — to właśnie pozwala serwerowi podjąć pracę w miejscu, w którym została przerwana.

Strumień służy wyłącznie do odbioru: po otwarciu połączenia nie ma już czego wysyłać.

Dwie akcje: Połączenie SSE (wyjścia connected i message, jedna emisja na każde odebrane zdarzenie) oraz Zamknięcie połączenia SSE. Zob. Połączenia i strumienie.

Typowy wzorzec: otworzyć strumień, wywołaniem HTTP uruchomić akcję biznesową, a następnie sprawdzić asercją, że oczekiwane zdarzenie faktycznie dociera na port message.

Trzy cele: cURL, EventSource przeglądarki, Python (requests w trybie strumieniowym).