WebSocket Client Before Connect and Before WatchDog

· Funktionen

Der WebSocket-Client kann über mehrere verfügbare Ereignisse angepasst werden. In der aktuellen Version wurden 2 neue Ereignisse hinzugefügt:

OnBeforeConnect: Dieses Ereignis wird unmittelbar vor dem Verbindungsversuch des Clients zum Server ausgelöst.

OnBeforeWatchDog: Der sgcWebSocket-Client hat eine eingebaute Methode namens WatchDog, um nach einer Trennung neu zu verbinden. Dieses Ereignis wird vor dem Wiederverbindungsversuch ausgelöst.

OnBeforeConnect

Dieses Ereignis wird vor dem Verbindungsversuch des Clients zum Server ausgelöst. Es kann ausgelöst werden, weil der Nutzer manuell eine Verbindung zum Server aufbaut oder weil WatchDog aktiviert ist und nach einer Trennung automatisch einen Wiederverbindungsversuch startet.

Du kannst diese Methode nutzen, um die Eigenschaften des Clients anzupassen, Beispiel: Du kannst hier nach zu vielen Wiederholungen den Host / Port des Servers ändern, auf den zugegriffen werden soll.

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

OnBeforeWatchDog 

Dieses Ereignis wird ausgelöst, wenn WatchDog aktiviert ist und versucht, neu zum Server zu verbinden. Du kannst es nutzen, um deinen eigenen Reconnect-Algorithmus zu verwenden. Beispiel: Du kannst zuerst versuchen, dich zu einem sicheren Server zu verbinden, und wenn das nicht klappt, einen Wiederverbindungsversuch zu einem nicht-sicheren Server starten.

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;