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;
