TsgcWebSocketLoadBalancerServerEventos › OnLoadBalancerHTTPRequest

OnLoadBalancerHTTPRequest Event

Dispara para cada requisição HTTP de entrada recebida pelo balanceador de carga antes que ela seja encaminhada ao servidor de backend selecionado.

Sintaxe

property OnLoadBalancerHTTPRequest: TsgcWSLBHTTPRequestEvent;
// TsgcWSLBHTTPRequestEvent = procedure(Sender: TObject; Connection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo; aForward: TsgcWSServerForwardHTTP) of object

Valor Padrão

Observações

OnLoadBalancerHTTPRequest é gerado para cada requisição HTTP aceita pelo balanceador de carga (quando LoadBalancer.Protocols.HTTP é True) imediatamente antes de ser encaminhada a um servidor de backend. ARequestInfo expõe a requisição recebida (Document, Params, RawHeaders, ContentType, PostStream) e aForward carrega o plano de encaminhamento: suas propriedades Host, Port e SSL podem ser reescritas para direcionar a um backend diferente, um caminho de URL diferente (aForward.Document) ou para alternar o TLS. Defina aForward.Handled := True para ignorar o encaminhamento por completo e responder ao cliente você mesmo através de Connection. Usos típicos são regras de roteamento personalizadas, reescrita de requisições, injeção de cabeçalhos ou respostas em processo para endpoints de health.

Exemplo


procedure OnLoadBalancerHTTPRequest(Sender: TObject; Connection: TsgcWSConnection;
  ARequestInfo: TIdHTTPRequestInfo; aForward: TsgcWSServerForwardHTTP);
begin
  // route /api/* to a different backend
  if StartsText('/api', ARequestInfo.Document) then
  begin
    aForward.Host := '10.0.0.10';
    aForward.Port := 9000;
  end;
end;

Voltar para Eventos