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);

返回方法