TsgcWebSocketClient › Zdarzenia › OnBeforeWatchDog
Wywoływane przed każdą próbą ponownego połączenia przez WatchDog, co umożliwia aplikacji zmianę docelowego serwera lub rezygnację z ponowienia.
property OnBeforeWatchDog: TsgcWSOnBeforeWatchDogEvent;
// TsgcWSOnBeforeWatchDogEvent = procedure(Sender: TObject; var Handled: Boolean) of object
—
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ę.
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;