TsgcWebSocketLoadBalancerServer › Events › OnBeforeSendServerBinding
Si attiva prima che il load balancer invii un binding del server backend (host, port, protocollo) a un client a valle appena accettato.
property OnBeforeSendServerBinding: TsgcWSLBBeforeSendServerHostEvent;
// TsgcWSLBBeforeSendServerHostEvent = procedure(Connection: TsgcWSConnection; var Binding: TsgcWSLoadBalancerServerBinding) of object
—
OnBeforeSendServerBinding viene generato dopo che il bilanciatore del carico seleziona un server backend per una connessione client in ingresso e prima che l'URL di binding selezionato venga restituito al client. Il parametro Binding espone l'host, la porta e il protocollo che verranno inviati al client; modificarlo per sovrascrivere l'indirizzo pubblico (ad esempio per riscrivere l'host quando il client deve raggiungere il backend attraverso un proxy inverso o un IP pubblico diverso da quello registrato dal backend stesso). Gli utilizzi tipici includono la modifica del binding per IP client specifici, l'inserimento di un target di sessione sticky o la forzatura di un particolare protocollo (ws vs wss) in base alla richiesta. Lasciare Binding invariato per mantenere il valore calcolato dall'algoritmo LoadBalancing configurato.
procedure OnBeforeSendServerBinding(Connection: TsgcWSConnection;
var Binding: TsgcWSLoadBalancerServerBinding);
begin
// force secure WebSocket scheme when the client connected over TLS
if Connection.IsSSL then
Binding.Protocol := 'wss';
end;