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
