TsgcWebSocketClient › Metodi › ConnectTask
Apre la connessione WebSocket in un task in background e restituisce un handle IsgcTask che può essere atteso, concatenato o annullato.
function ConnectTask(const aTimeout: Integer = 10000): IsgcTask;
| Nome | Tipo | Descrizione |
|---|---|---|
aTimeout | const Integer | Tempo massimo in millisecondi da attendere affinché la connessione diventi attiva. Il valore predefinito è 10000 (10 secondi). |
Un handle IsgcTask per il tentativo di connessione in corso. Chiamare Await per bloccare fino al completamento, ThenProc per eseguire una continuazione in caso di successo, OnError per gestire gli errori e Cancel per annullare. IsCompleted, IsCancelled e State riportano lo stato di avanzamento.
ConnectTask è la controparte in stile future di Connect: esegue la connessione bloccante su un thread in background e ritorna immediatamente, quindi il thread chiamante non viene mai bloccato. Se la connessione non può essere stabilita entro aTimeout, il task fallisce con EsgcAsyncException e viene eseguita la continuazione OnError. La chiamata a Cancel sul task restituito disconnette il client, quindi un tentativo di connessione ancora in corso viene interrotto invece di essere portato a termine. Richiede Delphi 2010 o successivo (e C++Builder 2010 o successivo); non è disponibile nell'edizione .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);