Vanaf sgcWebSockets 2023.2.0 is de HTTP/1-client verbeterd en ondersteunt deze SSE-requests. SSE werd al ondersteund op server-componenten maar nog niet op de client.
SSE (Server-Sent Events) is een webtechnologie voor het efficiënt ontvangen van push-meldingen van een server naar de browser van een client. Het is een standaard waarmee een webpagina realtime-updates van een server kan ontvangen zonder dat constant gepolled hoeft te worden. SSE wordt doorgaans gebruikt om realtime-updates te leveren voor scenario's zoals chat-toepassingen, sportscores, financiële data en andere.
SSE werkt over één enkele HTTP-verbinding, en de browser opent en onderhoudt deze verbinding automatisch. De server pusht updates naar de client via deze verbinding, die open wordt gehouden zolang de client verbonden is.
SSE-client
De TsgcHTTP1Client heeft een nieuwe methode genaamd GetSSE die een HTTP-request verstuurt om een event-stream tussen server en client te starten. Elke keer dat de client een nieuwe stream van de server ontvangt, wordt het event OnSSEMessage aangeroepen met de inhoud van het tekstbericht.
Hieronder een eenvoudig voorbeeld.
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;
De volledige broncode-demo en het gecompileerde project voor Windows kun je hieronder downloaden
