Cliente Delphi Server Sent Events (SSE)

· Recursos

A partir do sgcWebSockets 2023.2.0, o cliente HTTP/1 foi aprimorado e suporta requisições SSE. Lembre-se de que o SSE já era suportado em componentes Servidor, mas não no cliente.

SSE (Server-Sent Events) é uma tecnologia web para receber notificações push de forma eficiente de um servidor para o navegador do cliente. É um padrão que permite que uma página web receba atualizações de um servidor em tempo real sem a necessidade de polling constante. O SSE é normalmente usado para fornecer atualizações em tempo real em cenários como aplicativos de chat, placares esportivos, dados financeiros e outros.

O SSE opera sobre uma única conexão HTTP, e o navegador abre e mantém essa conexão automaticamente. O servidor envia atualizações para o cliente usando essa conexão, que é mantida aberta enquanto o cliente estiver conectado.

Cliente SSE

O TsgcHTTP1Client tem um novo método chamado GetSSE que envia uma requisição HTTP para iniciar um Event Stream entre o servidor e o cliente. Toda vez que o cliente recebe um novo stream do servidor, o evento OnSSEMessage é chamado com o conteúdo da mensagem de texto.

Veja abaixo um exemplo simples.

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;

O código-fonte completo do demo e o projeto compilado para windows podem ser baixados abaixo