TsgcWebSocketLoadBalancerServer › Olaylar › OnLoadBalancerHTTPResponse
Yük dengeleyici, arka uçtan HTTP yanıtını aldıktan sonra ve aşağı akış istemcisine döndürülmeden önce tetiklenir.
property OnLoadBalancerHTTPResponse: TsgcWSLBHTTPResponseEvent;
// TsgcWSLBHTTPResponseEvent = procedure(Sender: TObject; Connection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo; E: Exception) of object
—
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.
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;