El cliente WebSocket puede personalizarse con algunos de los eventos disponibles. Hay 2 nuevos eventos añadidos a la última versión:
OnBeforeConnect: este evento se llama justo antes de que el cliente intente conectarse al servidor.
OnBeforeWatchDog: el cliente sgcWebSocket dispone de un método integrado para reconectar tras una desconexión, llamado WatchDog; este evento se llama antes de intentar reconectar.
OnBeforeConnect
Este evento se llama antes de que el cliente intente conectarse al servidor. Puede dispararse porque el usuario inicie manualmente la conexión o porque WatchDog esté activado e intente reconectar automáticamente tras una desconexión.
Este método puede usarse para personalizar las propiedades del cliente; ejemplo: puedes cambiar aquí el host o puerto del servidor al que intenta acceder tras demasiados reintentos.
procedure OnBeforeConnect(Sender: TObject);
begin
if Retries > 10 then
TsgcWebSocketClient(Sender).URL := 'ws://echo.websocket.org';
end;
OnBeforeWatchDog
Este evento se llama cuando WatchDog está activado e intenta reconectarse al servidor; aquí puedes usar el evento para implementar tu propio algoritmo de reconexión. Ejemplo: puedes intentar conectarte primero a un servidor seguro y, si no funciona, reintentarlo en un servidor no seguro.
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;
