TsgcWebSocketLoadBalancerServer › Événements › OnBeforeSendServerBinding
Déclenché avant que l'équilibreur de charge n'envoie une liaison de serveur backend (hôte, port, protocole) à un client en aval nouvellement accepté.
property OnBeforeSendServerBinding: TsgcWSLBBeforeSendServerHostEvent;
// TsgcWSLBBeforeSendServerHostEvent = procedure(Connection: TsgcWSConnection; var Binding: TsgcWSLoadBalancerServerBinding) of object
—
OnBeforeSendServerBinding est déclenché après que l'équilibreur de charge a sélectionné un serveur backend pour une connexion client entrante et avant que l'URL de liaison sélectionnée soit renvoyée au client. Le paramètre Binding expose l'hôte, le port et le protocole qui seront renvoyés ; modifiez-le pour remplacer l'adresse publique (par exemple pour réécrire l'hôte lorsque le client doit atteindre le backend via un proxy inverse ou une adresse IP publique différente de celle enregistrée par le backend lui-même). Les utilisations typiques sont l'ajustement de la liaison pour des adresses IP client spécifiques, l'injection d'une cible de session persistante, ou le forçage d'un protocole particulier (ws ou wss) en fonction de la requête. Laissez Binding inchangé pour conserver la valeur calculée par l'algorithme LoadBalancing configuré.
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;