TsgcTCPClient › Eventos › OnBeforeWatchDog
Se dispara antes de cada intento de reconexión del WatchDog para que la aplicación pueda ajustar el servidor de destino o suprimir el reintento.
property OnBeforeWatchDog: TsgcWSOnBeforeWatchDogEvent;
// TsgcWSOnBeforeWatchDogEvent = procedure(Sender: TObject; var Handled: Boolean) of object
—
Cuando WatchDog está habilitado y se detecta una desconexión inesperada, el cliente espera WatchDog.Interval segundos y luego intenta reconectarse. OnBeforeWatchDog se activa justo antes de cada intento, lo que permite a la aplicación cambiar las propiedades de conexión del servidor (Host, Port, TLS...) para implementar lógica de conmutación por error, como cambiar a un servidor secundario tras varios intentos fallidos. Establecer Handled en True cancela el intento de reconexión para ese ciclo; dejarlo en False (el valor predeterminado) permite que WatchDog proceda con la reconexión.
procedure OnBeforeWatchDog(Sender: TObject; var Handled: Boolean);
var
oClient: TsgcTCPClient;
begin
oClient := TsgcTCPClient(Sender);
if oClient.WatchDog.AttemptsCount > 3 then
oClient.Host := 'fallback.example.com';
Handled := False;
end;