TsgcWebSocketClientMetody › ConnectTask

ConnectTask Metoda

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ć.

Składnia

function ConnectTask(const aTimeout: Integer = 10000): IsgcTask;

Parametry

NazwaTypOpis
aTimeoutconst IntegerMaksymalny czas w milisekundach oczekiwania na aktywację połączenia. Domyślnie wynosi 10000 (10 sekund).

Wartość zwracana

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.

Uwagi

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.

Przykład


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

Powrót do metod