Server-Sent Events (SSE)
Notifiche push da server a client basate su HTTP. Un approccio leggero e affidabile allo streaming di dati in tempo reale che funziona ovunque funzioni HTTP.
Notifiche push da server a client basate su HTTP. Un approccio leggero e affidabile allo streaming di dati in tempo reale che funziona ovunque funzioni HTTP.
SSE offre un modo semplice e standardizzato perché i server inviino dati ai client su una connessione HTTP persistente.
I Server-Sent Events usano una semplice connessione HTTP per inviare in streaming eventi dal server al client. A differenza di WebSocket, SSE è unidirezionale — il server invia i dati e il client li riceve. Questa semplicità è il suo punto di forza: SSE funziona attraverso proxy HTTP, load balancer e firewall senza alcuna configurazione speciale. Il browser (o la libreria client) gestisce automaticamente la riconnessione e gli event ID permettono di riprendere senza problemi dopo una disconnessione. sgcWebSockets fornisce un client SSE completo che si integra naturalmente con le applicazioni Delphi.
Notifiche push da server a client semplici ma potenti.
Solo da server a client — l'architettura in tempo reale più semplice possibile. Quando ti serve solo inviare dati ai client, SSE è la scelta ideale.
Logica di riconnessione integrata con intervalli di retry configurabili. Il client si riconnette automaticamente quando la connessione cade.
Ogni evento può trasportare un ID. Dopo la riconnessione, il client invia l'ultimo event ID così che il server possa riprendere da dove era stato interrotto.
Tipo MIME standard e formato testuale semplice. Gli eventi sono testo semplice con tipi di evento nominati opzionali, facili da generare e parsare.
Usa HTTP standard, quindi SSE funziona attraverso proxy aziendali, firewall e CDN senza configurazioni speciali o aperture di porte.
Usa SSE come fallback leggero in ambienti in cui le connessioni WebSocket sono bloccate o limitate.
Scenari in cui basta il push unidirezionale dal server.
Trasmetti notizie in diretta, aggiornamenti dai social media e feed di contenuti alle applicazioni con push in tempo reale.
Invia quotazioni di mercato in tempo reale, dati di mercato e alert di trading alle applicazioni client con latenza minima.
Recapita notifiche, alert e messaggi di sistema in tempo reale agli utenti senza polling né refresh manuali.
Trasmetti log applicativi, eventi server e output di debug in tempo reale per monitoraggio e troubleshooting.
Invia in tempo reale lo stato delle pipeline CI/CD, l'avanzamento delle build e le notifiche di deployment alle dashboard degli sviluppatori.
Collegati a un endpoint SSE e ricevi gli eventi inviati dal server.
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;