TsgcWebSocketLoadBalancerServerEventos › OnLoadBalancerHTTPResponse

OnLoadBalancerHTTPResponse Event

Dispara depois que o balanceador de carga recebe a resposta HTTP do backend e antes de ela ser retornada ao cliente downstream.

Sintaxe

property OnLoadBalancerHTTPResponse: TsgcWSLBHTTPResponseEvent;
// TsgcWSLBHTTPResponseEvent = procedure(Sender: TObject; Connection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo; E: Exception) of object

Valor Padrão

Observações

OnLoadBalancerHTTPResponse é gerado assim que o backend respondeu a uma requisição HTTP encaminhada, ou quando o encaminhamento falhou. ARequestInfo é a requisição original e AResponseInfo carrega a resposta do backend (ResponseNo, ContentText/ContentStream, cabeçalhos personalizados) que ainda pode ser modificada antes de ser escrita de volta ao cliente downstream. E é a exceção gerada durante o encaminhamento (nil quando a troca foi bem-sucedida); quando E está atribuído, você pode construir uma resposta de erro personalizada definindo os campos de AResponseInfo. Usos típicos são adicionar cabeçalhos de resposta de segurança, reescrever cabeçalhos Location para cenários de reverse-proxy, coletar métricas de latência, ou transformar uma falha do backend em uma página HTTP 502 personalizada.

Exemplo


procedure OnLoadBalancerHTTPResponse(Sender: TObject; Connection: TsgcWSConnection;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo; E: Exception);
begin
  if Assigned(E) then
  begin
    AResponseInfo.ResponseNo := 502;
    AResponseInfo.ContentText := 'Backend unavailable: ' + E.Message;
  end
  else
    AResponseInfo.CustomHeaders.Add('X-LoadBalancer: sgcWebSockets');
end;

Voltar para Eventos