TsgcWebSocketClient › Eventos › OnBeforeWatchDog
Disparado antes de cada tentativa de reconexão do WatchDog para que a aplicação possa ajustar o servidor de destino ou suprimir a nova tentativa.
property OnBeforeWatchDog: TsgcWSOnBeforeWatchDogEvent;
// TsgcWSOnBeforeWatchDogEvent = procedure(Sender: TObject; var Handled: Boolean) of object
—
Quando o WatchDog está habilitado e uma desconexão inesperada é detectada, o cliente aguarda WatchDog.Interval segundos e então tenta reconectar. OnBeforeWatchDog é gerado logo antes de cada tentativa, o que permite à aplicação alterar as propriedades de conexão do servidor (Host, Port, URL, TLS...) para implementar lógica de fallback, como alternar para um servidor secundário após várias tentativas falhas. Definir Handled como True cancela a tentativa de reconexão para este ciclo; deixá-lo False (o padrão) permite que o WatchDog prossiga com a reconexão.
procedure OnBeforeWatchDog(Sender: TObject; var Handled: Boolean);
var
oClient: TsgcWebSocketClient;
begin
oClient := TsgcWebSocketClient(Sender);
if oClient.WatchDog.AttemptsCount > 3 then
oClient.Host := 'fallback.example.com';
Handled := False;
end;