TsgcWebSocketClient › Métodos › ConnectTask
Abre a conexão WebSocket em uma tarefa em segundo plano e retorna um identificador IsgcTask que pode ser aguardado, encadeado ou cancelado.
function ConnectTask(const aTimeout: Integer = 10000): IsgcTask;
| Name | Type | Descrição |
|---|---|---|
aTimeout | const Integer | Tempo máximo em milissegundos para aguardar até que a conexão se torne ativa. O padrão é 10000 (10 segundos). |
Um identificador IsgcTask para a tentativa de conexão pendente. Chame Await para bloquear até que ela termine, ThenProc para executar uma continuação em caso de sucesso, OnError para tratar falhas e Cancel para abortar. IsCompleted, IsCancelled e State informam o progresso.
ConnectTask é a contraparte no estilo future de Connect: ele executa a conexão bloqueante em uma thread em segundo plano e retorna imediatamente, de modo que a thread chamadora nunca é bloqueada. Se a conexão não puder ser estabelecida dentro de aTimeout, a tarefa falha com EsgcAsyncException e a continuação OnError é executada. Chamar Cancel na tarefa retornada desconecta o cliente, de modo que uma tentativa de conexão ainda em andamento é abortada em vez de ser executada até o fim. Requer Delphi 2010 ou posterior (e C++Builder 2010 ou posterior); não está disponível na edição .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);