Server-Sent Events (SSE)
Notifications push server-to-client basées sur HTTP. Une approche légère et fiable du streaming de données en temps réel qui fonctionne partout où HTTP fonctionne.
Notifications push server-to-client basées sur HTTP. Une approche légère et fiable du streaming de données en temps réel qui fonctionne partout où HTTP fonctionne.
SSE fournit une manière simple et standardisée pour les serveurs de pousser des données vers les clients sur une connexion HTTP persistante.
Server-Sent Events utilise une simple connexion HTTP pour streamer des événements du serveur vers le client. Contrairement à WebSocket, SSE est unidirectionnel — le serveur envoie des données et le client les reçoit. Cette simplicité fait sa force : SSE fonctionne à travers les proxies HTTP, les équilibreurs de charge et les firewalls sans configuration spéciale. Le navigateur (ou la bibliothèque cliente) gère la reconnexion automatiquement, et les IDs d'événements permettent une reprise fluide après une déconnexion. sgcWebSockets fournit un client SSE complet qui s'intègre naturellement aux applications Delphi.
Notifications push server-to-client simples et puissantes.
Server-to-client uniquement — l'architecture temps réel la plus simple possible. Quand tu as juste besoin de pousser des données vers les clients, SSE est le choix idéal.
Logique de reconnexion intégrée avec intervalles de réessai configurables. Le client se reconnecte automatiquement quand la connexion tombe.
Chaque événement peut porter un ID. Après reconnexion, le client envoie le dernier ID d'événement pour que le serveur puisse reprendre là où il s'est arrêté.
Type MIME standard et format texte simple. Les événements sont du texte brut avec types d'événements nommés optionnels, ce qui les rend faciles à générer et parser.
Utilise HTTP standard, donc SSE fonctionne à travers les proxies d'entreprise, firewalls et CDN sans configuration spéciale ni ouverture de port.
Utilise SSE comme repli léger dans les environnements où les connexions WebSocket sont bloquées ou restreintes.
Scénarios où le push server unidirectionnel est tout ce dont tu as besoin.
Stream les actualités en direct, les mises à jour de réseaux sociaux et les flux de contenu vers les applications avec une livraison push en temps réel.
Pousse les cours boursiers en temps réel, les données de marché et les alertes de trading vers les applications clientes avec une latence minimale.
Livre des notifications, alertes et messages système en temps réel aux utilisateurs sans polling ni rafraîchissement manuel.
Stream les logs d'application, événements serveur et sorties de debug en temps réel pour la supervision et le dépannage.
Pousse le statut des pipelines CI/CD, la progression des builds et les notifications de déploiement vers les tableaux de bord des développeurs en temps réel.
Connecte-toi à un endpoint SSE et reçois les événements poussés par le serveur.
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;