Cliente Server-Sent Events (SSE) para Delphi

· Características

A partir de sgcWebSockets 2023.2.0, el cliente HTTP/1 se ha mejorado y admite peticiones SSE. Recuerda que SSE ya estaba soportado en los componentes de servidor, pero no en el cliente.

SSE (Server-Sent Events) es una tecnología web que permite recibir notificaciones push de manera eficiente desde un servidor al navegador del cliente. Es un estándar que permite a una página web recibir actualizaciones de un servidor en tiempo real sin necesidad de polling constante. SSE se usa habitualmente para ofrecer actualizaciones en tiempo real en escenarios como aplicaciones de chat, marcadores deportivos, datos financieros y otros.

SSE opera sobre una única conexión HTTP, y el navegador abre y mantiene esta conexión automáticamente. El servidor envía actualizaciones al cliente usando esta conexión, que permanece abierta mientras el cliente esté conectado.

Cliente SSE

TsgcHTTP1Client tiene un nuevo método llamado GetSSE que envía una petición HTTP para iniciar un Event Stream entre el servidor y el cliente. Cada vez que el cliente recibe un nuevo stream del servidor, se llama al evento OnSSEMessage con el contenido del mensaje de texto.

A continuación tienes un ejemplo sencillo.

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; 

A continuación puedes descargar el código fuente completo de la demo y el proyecto compilado para Windows