TsgcWebSocketLoadBalancerServer › Eventos › OnBeforeSendServerBinding
Se dispara antes de que el balanceador de carga envíe un enlace de servidor backend (host, puerto, protocolo) a un cliente descendente recién aceptado.
property OnBeforeSendServerBinding: TsgcWSLBBeforeSendServerHostEvent;
// TsgcWSLBBeforeSendServerHostEvent = procedure(Connection: TsgcWSConnection; var Binding: TsgcWSLoadBalancerServerBinding) of object
—
OnBeforeSendServerBinding se genera después de que el balanceador de carga elige un servidor backend para una conexión de cliente entrante y antes de que la URL del binding seleccionado se devuelva al cliente. El parámetro Binding expone el host, el puerto y el protocolo que se enviarán de vuelta; modifíquelo para anular la dirección pública (por ejemplo, para reescribir el host cuando el cliente deba llegar al backend a través de un proxy inverso o una IP pública diferente a la registrada por el propio backend). Los usos habituales son ajustar el binding para IPs de cliente específicas, inyectar un destino de sesión fija o forzar un protocolo determinado (ws frente a wss) basándose en la solicitud. Deje Binding sin cambios para conservar el valor calculado por el algoritmo 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;