Klient WebSocket — Before Connect i Before WatchDog

· Funkcje

Klient WebSocket można dostosować za pomocą dostępnych zdarzeń. W najnowszej wersji dodano 2 nowe zdarzenia:

OnBeforeConnect: zdarzenie wywoływane tuż przed próbą połączenia klienta z serwerem

OnBeforeWatchDog: klient sgcWebSocket ma wbudowaną metodę ponownego łączenia po rozłączeniu o nazwie WatchDog; to zdarzenie jest wywoływane przed próbą ponownego połączenia.

OnBeforeConnect

Zdarzenie to jest wywoływane przed próbą połączenia klienta z serwerem. Może być wyzwolone przez ręczne połączenie użytkownika lub przez WatchDog, gdy jest włączony i automatycznie próbuje ponownie połączyć po rozłączeniu.

Ta metoda może być używana do dostosowania właściwości klienta, przykład: możesz tutaj zmienić host/port serwera, z którym klient próbuje się połączyć po zbyt wielu nieudanych próbach.

procedure OnBeforeConnect(Sender: TObject);
begin
  if Retries > 10 then
    TsgcWebSocketClient(Sender).URL := 'ws://echo.websocket.org';
end; 

OnBeforeWatchDog

Zdarzenie to jest wywoływane, gdy WatchDog jest włączony i próbuje ponownie połączyć się z serwerem. Możesz tu użyć własnego algorytmu ponownego łączenia. Przykład: możesz najpierw spróbować połączyć się z bezpiecznym serwerem, a jeśli to nie zadziała, spróbować ponownie z serwerem bez szyfrowania.

procedure OnBeforeWatchDog(Sender: TObject; var Handled:
    Boolean);
begin
  Handled := True;
  TsgcWebSocketClient(Sender).URL := 'wss://server1';
  if not TsgcWebSocketClient(Sender).Connect() then
  begin
    TsgcWebSocketClient(Sender).URL := 'ws://server2';
        TsgcWebSocketClient(Sender).Connect(); 
  end;
end;