TsgcWebSocketClientZdarzenia › 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 moduł WatchDog jest włączony i wykryje nieoczekiwane rozłączenie, klient czeka 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, URL, TLS...) w celu implementacji logiki awaryjnej, takiej jak przełączenie na serwer pomocniczy po kilku nieudanych próbach. Ustawienie parametru Handled na True anuluje próbę ponownego połączenia dla tego cyklu; pozostawienie wartości False (domyślnej) pozwala modułowi WatchDog kontynuować próbę.

Przykład


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;

Powrót do Zdarzeń