TsgcTCPClient › イベント › OnBeforeWatchDog
各 WatchDog 再接続の試行前に発生し、アプリケーションがターゲットサーバーを調整したり再試行を抑制したりできます。
property OnBeforeWatchDog: TsgcWSOnBeforeWatchDogEvent;
// TsgcWSOnBeforeWatchDogEvent = procedure(Sender: TObject; var Handled: Boolean) of object
—
WatchDog が有効で予期しない切断が検出されると、クライアントは WatchDog.Interval 秒待機してから再接続を試みます。OnBeforeWatchDog は各試行の直前に発生し、アプリケーションがサーバーの接続プロパティ(Host、Port、TLS など)を変更して、複数回の失敗後にセカンダリサーバーに切り替えるなどのフォールバックロジックを実装できます。Handled を True に設定すると、このサイクルの再接続試行がキャンセルされます。False(デフォルト)のままにすると WatchDog が再接続を続けます。
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;