TsgcWebSocketLoadBalancerServer › Ereignisse › OnBeforeSendServerBinding
Wird ausgelöst, bevor der Load Balancer eine Backend-Server-Bindung (Host, Port, Protokoll) an einen neu akzeptierten Downstream-Client sendet.
property OnBeforeSendServerBinding: TsgcWSLBBeforeSendServerHostEvent;
// TsgcWSLBBeforeSendServerHostEvent = procedure(Connection: TsgcWSConnection; var Binding: TsgcWSLoadBalancerServerBinding) of object
—
OnBeforeSendServerBinding wird ausgelöst, nachdem der Load Balancer ein Backend-Server für eine eingehende Client-Verbindung ausgewählt hat und bevor die ausgewählte Binding-URL an den Client zurückgegeben wird. Der Parameter Binding stellt den Host, Port und das Protokoll bereit, die zurückgesendet werden; ändern Sie ihn, um die öffentliche Adresse zu überschreiben (zum Beispiel, um den Host umzuschreiben, wenn der Client das Backend über einen Reverse-Proxy oder eine andere öffentliche IP als die vom Backend selbst registrierte erreichen muss). Typische Verwendungen sind das Anpassen des Bindings für bestimmte Client-IPs, das Einfügen eines Sticky-Session-Ziels oder das Erzwingen eines bestimmten Protokolls (ws vs. wss) basierend auf dem Request. Lassen Sie das Binding unverändert, um den vom konfigurierten LoadBalancing-Algorithmus berechneten Wert beizubehalten.
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;