TsgcWebSocketLoadBalancerServer › Eventos › OnBeforeSendServerBinding
Disparado antes que o load balancer envie um binding de servidor de backend (host, porta, protocolo) a um cliente downstream recém-aceito.
property OnBeforeSendServerBinding: TsgcWSLBBeforeSendServerHostEvent;
// TsgcWSLBBeforeSendServerHostEvent = procedure(Connection: TsgcWSConnection; var Binding: TsgcWSLoadBalancerServerBinding) of object
—
OnBeforeSendServerBinding é gerado depois que o balanceador de carga escolhe um servidor de backend para uma conexão de cliente de entrada e antes que a URL de binding selecionada seja retornada ao cliente. O parâmetro Binding expõe o host, a porta e o protocolo que serão enviados de volta; modifique-o para sobrescrever o endereço público (por exemplo, para reescrever o host quando o cliente precisar alcançar o backend através de um proxy reverso ou de um IP público diferente daquele registrado pelo próprio backend). Os usos típicos são ajustar o binding para IPs de cliente específicos, injetar um destino de sessão sticky ou forçar um protocolo específico (ws vs wss) com base na requisição. Deixe o Binding inalterado para manter o valor calculado pelo algoritmo de LoadBalancing configurado.
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;