TsgcTCPClient › Ereignisse › OnBeforeWatchDog
Wird vor jedem WatchDog-Wiederverbindungsversuch ausgelöst, sodass die Anwendung den Zielserver anpassen oder den Wiederholungsversuch unterdrücken kann.
property OnBeforeWatchDog: TsgcWSOnBeforeWatchDogEvent;
// TsgcWSOnBeforeWatchDogEvent = procedure(Sender: TObject; var Handled: Boolean) of object
—
Wenn WatchDog aktiviert ist und eine unerwartete Trennung erkannt wird, wartet der Client WatchDog.Interval Sekunden und versucht dann, die Verbindung wiederherzustellen. OnBeforeWatchDog wird unmittelbar vor jedem Versuch ausgelöst, sodass die Anwendung die Verbindungseigenschaften (Host, Port, TLS...) ändern kann, um eine Fallback-Logik zu implementieren, etwa den Wechsel zu einem sekundären Server nach mehreren fehlgeschlagenen Versuchen. Das Setzen von Handled auf True bricht den Wiederverbindungsversuch für diesen Zyklus ab; wenn Sie es auf False belassen (Standard), führt der WatchDog die Wiederverbindung durch.
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;