WebSocket クライアントは利用可能なイベントを使用してカスタマイズできます。最新バージョンで 2 つの新しいイベントが追加されました:
OnBeforeConnect:クライアントがサーバーへの接続を試みる直前に呼び出されるイベントです。
OnBeforeWatchDog:sgcWebSocket クライアントには切断後に再接続するための WatchDog という組み込みメソッドがあります。このイベントは再接続を試みる前に呼び出されます。
OnBeforeConnect
このイベントは、クライアントがサーバーへの接続を試みる前に呼び出されます。ユーザーが手動でサーバーへの接続を試みる場合や、WatchDog が有効で切断後に自動的に再接続を試みる場合に発生します。
このメソッドはクライアントのプロパティをカスタマイズするために使用できます。例:再試行が多すぎた場合にアクセスしようとしているサーバーのホスト / ポートをここで変更できます。
procedure OnBeforeConnect(Sender: TObject);
begin
if Retries > 10 then
TsgcWebSocketClient(Sender).URL := 'ws://echo.websocket.org';
end;
OnBeforeWatchDog
このイベントは WatchDog が有効でサーバーへの再接続を試みるときに呼び出されます。ここで独自の再接続アルゴリズムを実装できます。例:まずセキュアなサーバーへの接続を試み、失敗した場合は非セキュアなサーバーへの再接続を試みることができます。
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;
