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;
