TsgcWebSocketClient › メソッド › ConnectTask
バックグラウンドタスクで WebSocket 接続を開き、待機、連結、キャンセルが可能な IsgcTask ハンドルを返します。
function ConnectTask(const aTimeout: Integer = 10000): IsgcTask;
| 名前 | タイプ | 説明 |
|---|---|---|
aTimeout | const Integer | 接続がアクティブになるまで待機する最大時間(ミリ秒)。デフォルトは 10000(10秒)。 |
保留中の接続試行に対する IsgcTask ハンドルです。Await を呼び出すと完了までブロックします。ThenProc で成功時に継続処理を実行し、OnError で失敗を処理し、Cancel で中止します。IsCompleted、IsCancelled、State が進行状況を報告します。
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);