TsgcWebSocketLoadBalancerServerEreignisse › OnLoadBalancerHTTPResponse

OnLoadBalancerHTTPResponse Ereignis

Wird ausgelöst, nachdem der Load Balancer die HTTP-Antwort vom Backend empfangen hat und bevor sie an den nachgelagerten Client zurückgegeben wird.

Syntax

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

Standardwert

Hinweise

OnLoadBalancerHTTPResponse wird ausgelöst, sobald das Backend eine weitergeleitete HTTP-Anfrage beantwortet hat oder wenn die Weiterleitung fehlgeschlagen ist. ARequestInfo ist die ursprüngliche Anfrage und AResponseInfo trägt die Antwort vom Backend (ResponseNo, ContentText/ContentStream, benutzerdefinierte Header), die noch verändert werden kann, bevor sie an den Downstream-Client zurückgeschrieben wird. E ist die während der Weiterleitung ausgelöste Ausnahme (nil, wenn der Austausch erfolgreich war); wenn E zugewiesen ist, können Sie eine benutzerdefinierte Fehlerantwort erstellen, indem Sie AResponseInfo-Felder setzen. Typische Verwendungen sind das Hinzufügen von Sicherheits-Antwortheadern, das Umschreiben von Location-Headern für Reverse-Proxy-Szenarien, das Sammeln von Latenzmetriken oder das Umwandeln eines Backend-Fehlers in eine benutzerdefinierte HTTP-502-Seite.

Beispiel


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;

Zurück zu Ereignissen