TsgcWebSocketClient › Metody › ConnectTask
Otwiera połączenie WebSocket w zadaniu w tle i zwraca uchwyt IsgcTask, na który można czekać, który można łączyć w łańcuchy lub anulować.
function ConnectTask(const aTimeout: Integer = 10000): IsgcTask;
| Nazwa | Typ | Opis |
|---|---|---|
aTimeout | const Integer | Maksymalny czas w milisekundach oczekiwania na aktywację połączenia. Domyślnie wynosi 10000 (10 sekund). |
Uchwyt IsgcTask dla trwającej próby połączenia. Należy wywołać Await, aby zablokować do jej zakończenia, ThenProc, aby uruchomić kontynuację po sukcesie, OnError, aby obsłużyć błędy, oraz Cancel, aby przerwać. IsCompleted, IsCancelled i State raportują postęp.
ConnectTask jest odpowiednikiem w stylu future metody Connect: wykonuje blokujące połączenie w wątku w tle i natychmiast zwraca sterowanie, dzięki czemu wątek wywołujący nigdy nie jest blokowany. Jeśli połączenia nie uda się nawiązać w czasie aTimeout, zadanie kończy się niepowodzeniem z wyjątkiem EsgcAsyncException i uruchamiana jest kontynuacja OnError. Wywołanie Cancel na zwróconym zadaniu rozłącza klienta, dzięki czemu trwająca jeszcze próba połączenia zostaje przerwana, zamiast być wykonana do końca. Wymaga Delphi 2010 lub nowszego (oraz C++Builder 2010 lub nowszego); nie jest dostępna w edycji .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);