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