Client Server-Sent Events (SSE) per Delphi

· Funzionalità

Da sgcWebSockets 2023.2.0 il client HTTP/1 è stato migliorato e supporta richieste SSE. Ricorda che SSE era già supportato nei componenti server ma non nel client.

SSE (Server-Sent Events) è una tecnologia web per ricevere efficientemente notifiche push da un server al browser di un client. È uno standard che permette a una pagina web di ricevere aggiornamenti da un server in tempo reale senza la necessità di un polling costante. SSE è tipicamente usato per fornire aggiornamenti in tempo reale in scenari come applicazioni di chat, punteggi sportivi, dati finanziari e altro.

SSE opera su una singola connessione HTTP e il browser apre e mantiene automaticamente questa connessione. Il server invia gli aggiornamenti al client tramite questa connessione, che resta aperta finché il client è connesso.

Client SSE

Il TsgcHTTP1Client dispone di un nuovo metodo chiamato GetSSE che invia una richiesta HTTP per avviare un Event Stream tra server e client. Ogni volta che il client riceve un nuovo stream dal server, viene chiamato l'evento OnSSEMessage con il contenuto del messaggio di testo.

Trovi qui sotto un semplice esempio.

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; 

Il sorgente completo della demo e il progetto compilato per Windows possono essere scaricati qui sotto