TsgcWebSocketLoadBalancerServerEventos › OnLoadBalancerHTTPResponse

OnLoadBalancerHTTPResponse Evento

Se activa después de que el balanceador de carga recibe la respuesta HTTP del backend y antes de que se devuelva al cliente receptor.

Sintaxis

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

Valor Predeterminado

Observaciones

OnLoadBalancerHTTPResponse se dispara una vez que el backend ha respondido a una solicitud HTTP reenviada, o cuando el reenvío ha fallado. ARequestInfo es la solicitud original y AResponseInfo contiene la respuesta del backend (ResponseNo, ContentText/ContentStream, cabeceras personalizadas) que todavía puede modificarse antes de ser enviada de vuelta al cliente descendente. E es la excepción producida durante el reenvío (nil cuando el intercambio fue exitoso); cuando E está asignado, puede construir una respuesta de error personalizada estableciendo los campos de AResponseInfo. Los usos típicos son añadir cabeceras de respuesta de seguridad, reescribir cabeceras Location para escenarios de proxy inverso, recopilar métricas de latencia, o convertir un fallo del backend en una página HTTP 502 personalizada.

Ejemplo


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;

Volver a Eventos