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