TsgcWebSocketLoadBalancerServerOlaylar › OnLoadBalancerHTTPResponse

OnLoadBalancerHTTPResponse Olay

Yük dengeleyici, arka uçtan HTTP yanıtını aldıktan sonra ve aşağı akış istemcisine döndürülmeden önce tetiklenir.

Sözdizimi

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

Varsayılan Değer

Remarks

OnLoadBalancerHTTPResponse, arka uç yönlendirilmiş bir HTTP isteğini yanıtladığında veya yönlendirme başarısız olduğunda bir kez tetiklenir. ARequestInfo orijinal istektir ve AResponseInfo, aşağı akış istemcisine geri yazılmadan önce hala değiştirilebilen arka uçtan gelen yanıtı (ResponseNo, ContentText/ContentStream, özel başlıklar) taşır. E, yönlendirme sırasında yükseltilen istisnadır (alışveriş başarılı olduğunda nil); E atandığında AResponseInfo alanlarını ayarlayarak özel bir hata yanıtı oluşturabilirsiniz. Tipik kullanımlar güvenlik yanıt başlıkları eklemek, ters proxy senaryoları için Location başlıklarını yeniden yazmak, gecikme metriklerini toplamak veya bir arka uç başarısızlığını özel bir HTTP 502 sayfasına dönüştürmektir.

Örnek


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;

Olaylara Dön