TsgcTCPClient › Zdarzenia › OnBeforeWatchDog

OnBeforeWatchDog Zdarzenie

Wywoływane przed każdą próbą ponownego połączenia przez WatchDog, co umożliwia aplikacji zmianę docelowego serwera lub rezygnację z ponowienia.

Składnia

property OnBeforeWatchDog: TsgcWSOnBeforeWatchDogEvent;
// TsgcWSOnBeforeWatchDogEvent = procedure(Sender: TObject; var Handled: Boolean) of object

Wartość domyślna

—

Uwagi

Gdy WatchDog jest włączony i zostanie wykryte nieoczekiwane rozłączenie, klient czeka przez WatchDog.Interval sekund, a następnie próbuje ponownie nawiązać połączenie. Zdarzenie OnBeforeWatchDog jest wywoływane tuż przed każdą próbą, co pozwala aplikacji zmienić właściwości połączenia z serwerem (Host, Port, TLS...) w celu implementacji logiki awaryjnej, np. przełączenia na serwer zapasowy po kilku nieudanych próbach. Ustawienie Handled na True anuluje próbę ponownego połączenia dla bieżącego cyklu; pozostawienie wartości False (domyślna) pozwala WatchDog kontynuować próbę połączenia.

Przykład


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;

Powrót do Zdarzeń