TsgcWebSocketClientメソッド › ConnectTask

ConnectTask メソッド

バックグラウンドタスクで WebSocket 接続を開き、待機、連結、キャンセルが可能な IsgcTask ハンドルを返します。

構文

function ConnectTask(const aTimeout: Integer = 10000): IsgcTask;

パラメータ

名前タイプ説明
aTimeoutconst Integer接続がアクティブになるまで待機する最大時間(ミリ秒)。デフォルトは 10000(10秒)。

戻り値

保留中の接続試行に対する IsgcTask ハンドルです。Await を呼び出すと完了までブロックします。ThenProc で成功時に継続処理を実行し、OnError で失敗を処理し、Cancel で中止します。IsCompletedIsCancelledState が進行状況を報告します。

解説

ConnectTask は Connect の future スタイル版です。ブロッキング接続をバックグラウンドスレッドで実行して直ちに戻るため、呼び出し元のスレッドがブロックされることはありません。aTimeout 以内に接続を確立できない場合、タスクは EsgcAsyncException で失敗し、OnError の継続処理が実行されます。返されたタスクで Cancel を呼び出すとクライアントが切断されるため、進行中の接続試行は完了まで実行されるのではなく中止されます。Delphi 2010 以降(および C++Builder 2010 以降)が必要です。.NET エディションでは使用できません。

使用例


oClient := TsgcWebSocketClient.Create(nil);
oClient.URL := 'wss://www.esegece.com:2053';
oClient.ConnectTask(5000)
  .ThenProc(procedure
    begin
      oClient.WriteData('Hello from client');
    end)
  .OnError(procedure(E: Exception)
    begin
      ShowMessage('Connection failed: ' + E.Message);
    end);

メソッドに戻る