TsgcWebSocketLoadBalancerServerGebeurtenissen › OnLoadBalancerHTTPResponse

OnLoadBalancerHTTPResponse Gebeurtenis

Wordt gegenereerd nadat de load balancer de HTTP-respons van de backend heeft ontvangen en voordat deze naar de downstream-client wordt geretourneerd.

Syntaxis

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

Standaardwaarde

Opmerkingen

OnLoadBalancerHTTPResponse wordt geactiveerd zodra de backend een doorgestuurde HTTP-aanvraag heeft beantwoord, of wanneer het doorsturen is mislukt. ARequestInfo is de oorspronkelijke aanvraag en AResponseInfo bevat het antwoord van de backend (ResponseNo, ContentText/ContentStream, aangepaste headers) dat nog kan worden gemuteerd voordat het terug naar de downstream-client wordt geschreven. E is de uitzondering die tijdens het doorsturen is gegenereerd (nil wanneer de uitwisseling is geslaagd); wanneer E is toegewezen, kunt u een aangepast foutantwoord bouwen door velden van AResponseInfo in te stellen. Typische toepassingen zijn het toevoegen van beveiligingsantwoordheaders, het herschrijven van Location-headers voor reverse-proxy-scenario's, het verzamelen van latentiemetrieken, of het omzetten van een backendfout in een aangepaste HTTP 502-pagina.

Voorbeeld


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;

Terug naar Events