Server-Sent Events (SSE)
Op HTTP gebaseerde server-naar-client push-notificaties. Een lichtgewicht, betrouwbare aanpak voor realtime datastreaming die overal werkt waar HTTP werkt.
Op HTTP gebaseerde server-naar-client push-notificaties. Een lichtgewicht, betrouwbare aanpak voor realtime datastreaming die overal werkt waar HTTP werkt.
SSE biedt een eenvoudige, gestandaardiseerde manier voor servers om data naar clients te pushen via een persistente HTTP-verbinding.
Server-Sent Events gebruiken een eenvoudige HTTP-verbinding om events van server naar client te streamen. Anders dan WebSocket is SSE unidirectioneel — de server stuurt data en de client ontvangt die. Die eenvoud is de kracht: SSE werkt door HTTP-proxies, load balancers en firewalls heen zonder speciale configuratie. De browser (of clientbibliotheek) regelt herverbinding automatisch en event-id's maken naadloos hervatten na een verbroken verbinding mogelijk. sgcWebSockets levert een complete SSE-client die naadloos integreert met Delphi-toepassingen.
Eenvoudige maar krachtige server-naar-client push-notificaties.
Alleen server naar client — de eenvoudigste realtime architectuur die mogelijk is. Als je alleen data naar clients hoeft te pushen, is SSE de ideale keuze.
Ingebouwde herverbindingslogica met configureerbare retry-intervallen. De client verbindt automatisch opnieuw wanneer de verbinding wegvalt.
Elk event kan een id meekrijgen. Na herverbinding stuurt de client het laatste event-id mee, zodat de server kan hervatten waar het gebleven was.
Standaard MIME-type en eenvoudig tekstformaat. Events zijn platte tekst met optionele named event-types, waardoor ze eenvoudig te genereren en te parseren zijn.
Gebruikt standaard HTTP, dus SSE werkt door bedrijfsproxies, firewalls en CDN's heen zonder speciale configuratie of open poorten.
Gebruik SSE als lichtgewicht fallback in omgevingen waar WebSocket-verbindingen worden geblokkeerd of beperkt.
Scenario's waarin unidirectionele server-push alles is wat je nodig hebt.
Stream live nieuws, social-media-updates en contentfeeds naar toepassingen met realtime push-aflevering.
Push realtime aandelenkoersen, marktdata en handelsalerts met minimale latentie naar clienttoepassingen.
Lever realtime notificaties, alerts en systeemberichten aan gebruikers zonder polling of handmatige refresh.
Stream applicatielogs, server-events en debug-output in realtime voor monitoring en troubleshooting.
Push de status van CI/CD-pipelines, buildvoortgang en deployment-notificaties in realtime naar developer-dashboards.
Verbind met een SSE-endpoint en ontvang events die door de server worden gepusht.
uses
sgcSSE_Client, sgcSSE_Classes;
var
SSEClient: TsgcSSEClient;
procedure TForm1.FormCreate(Sender: TObject);
begin
SSEClient := TsgcSSEClient.Create(nil);
SSEClient.URL := 'https://api.example.com/events';
// Configure reconnection
SSEClient.Options.RetryInterval := 3000;
SSEClient.Options.AutoReconnect := True;
// Set up event handlers
SSEClient.OnSSEConnect := OnSSEConnect;
SSEClient.OnSSEEvent := OnSSEEvent;
SSEClient.OnSSEDisconnect := OnSSEDisconnect;
end;
procedure TForm1.ButtonConnectClick(Sender: TObject);
begin
SSEClient.Connect;
end;
procedure TForm1.OnSSEConnect(Sender: TObject);
begin
Memo1.Lines.Add('Connected to SSE stream');
end;
procedure TForm1.OnSSEEvent(Sender: TObject;
aEventName, aData, aLastEventId: string);
begin
// Handle incoming server-sent events
if aEventName = 'price-update' then
UpdatePrice(aData)
else if aEventName = 'notification' then
ShowNotification(aData)
else
Memo1.Lines.Add(aEventName + ': ' + aData);
end;
procedure TForm1.OnSSEDisconnect(Sender: TObject);
begin
// Auto-reconnect will handle reconnection
Memo1.Lines.Add('Disconnected. Reconnecting...');
end;