Klient Server-Sent Events (SSE) dla Delphi

· Funkcje

Od sgcWebSockets 2023.2.0 klient HTTP/1 został ulepszony i obsługuje żądania SSE. Pamiętaj, że SSE było już obsługiwane w komponentach serwerowych, ale nie w kliencie.

SSE (Server-Sent Events) to technologia webowa do efektywnego odbierania powiadomień push z serwera do przeglądarki klienta. Jest to standard pozwalający stronie internetowej na odbieranie aktualizacji z serwera w czasie rzeczywistym bez konieczności ciągłego odpytywania. SSE jest typowo używane do dostarczania aktualizacji w czasie rzeczywistym w scenariuszach takich jak aplikacje czatu, wyniki sportowe, dane finansowe i inne.

SSE działa przez jedno połączenie HTTP, a przeglądarka automatycznie otwiera i utrzymuje to połączenie. Serwer przesyła aktualizacje do klienta za pomocą tego połączenia, które jest utrzymywane otwarte przez cały czas połączenia klienta.

SSE Client

TsgcHTTP1Client ma nową metodę GetSSE, która wysyła żądanie HTTP w celu uruchomienia strumienia zdarzeń między serwerem a klientem. Za każdym razem, gdy klient odbiera nowy strumień z serwera, wywoływane jest zdarzenie OnSSEMessage zawierające treść wiadomości tekstowej.

Poniżej znajdziesz prosty przykład.

oHTTP := TsgcHTTP1Client.Create(nil);
oHTTP.OnSSEMessage := OnSSEMessageEvent;
oHTTP.GetSSE('https://www.esegece.com/sse.php');
procedure OnSSEMessageEvent(Sender: TObject; const aMessage: string; var Cancel: Boolean);
begin
  DoLog(aMessage);
end; 

Pełne demo z kodem źródłowym oraz skompilowany projekt dla systemu Windows można pobrać poniżej.