WebSocket クライアント BeforeConnect と BeforeWatchDog

· 機能

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;