TsgcWebSocketClient › Events › 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;