TsgcWebSocketClient › 이벤트 › OnBeforeWatchDog
각 WatchDog 재연결 시도 전에 발생하여 애플리케이션이 대상 서버를 조정하거나 재시도를 억제할 수 있게 합니다.
__property TsgcWSOnBeforeWatchDogEvent OnBeforeWatchDog;
// typedef void __fastcall (__closure *TsgcWSOnBeforeWatchDogEvent)(TObject * Sender, bool &Handled);
—
WatchDog가 활성화되고 예기치 않은 연결 해제가 감지되면 클라이언트는 WatchDog.Interval 초 동안 기다린 다음 다시 연결을 시도합니다. OnBeforeWatchDog는 각 시도 직전에 발생하며, 애플리케이션이 서버 연결 속성(Host, Port, URL, TLS...)을 변경하여 여러 번 실패한 시도 후 보조 서버로 전환하는 것과 같은 폴백 로직을 구현할 수 있게 합니다. Handled를 True로 설정하면 이 주기의 재연결 시도가 취소됩니다. False로 두면(기본값) WatchDog가 재연결을 진행합니다.
void OnBeforeWatchDog(TObject *Sender, bool &Handled)
{
TsgcWebSocketClient *oClient = (TsgcWebSocketClient*)Sender;
if (oClient->WatchDog->AttemptsCount > 3)
oClient->Host = "fallback.example.com";
Handled = false;
}