TsgcWebSocketClient › Methods › Connect
Otwiera połączenie WebSocket synchronicznie i blokuje wątek wywołujący do czasu zakończenia uzgadniania lub upływu limitu czasu.
function Connect(const aTimeout: Integer = 10000): Boolean; overload;
function Connect(out AError: string; const aTimeout: Integer = 10000): Boolean; overload;
| Nazwa | Typ | Opis |
|---|---|---|
AError | out string | Zwraca opis błędu połączenia, gdy metoda się nie powiedzie, lub pusty ciąg znaków w przypadku powodzenia. Ten sam tekst jest później dostępny w LastError. |
aTimeout | const Integer | Maksymalny czas w milisekundach oczekiwania na aktywację połączenia. Domyślnie wynosi 10000 (10 sekund). |
True gdy klient jest połączony i uzgadnianie WebSocket zakończyło się w czasie limitu; False w przeciwnym razie. (Boolean)
Connect jest blokującym odpowiednikiem ustawienia Active := True. Ustawia wewnętrznie Active, a następnie czeka na wewnętrznym zdarzeniu, aż połączenie zostanie nawiązane lub upłynie limit czasu. Jeśli klient jest już połączony, metoda natychmiast zwraca True. Gdy funkcja zwróci True, można od razu bezpiecznie wywołać WriteData, nie czekając na OnConnect. Zamiast tego należy użyć Start, jeśli potrzebne jest nieblokujące wywołanie łączące się z wątku pomocniczego, lub ConnectTask dla nieblokującego połączenia w stylu future (Delphi 2010+).
Przeciążenie z parametrem out AError zachowuje się identycznie, ale dodatkowo zwraca przyczynę nieudanej próby, dzięki czemu żadna procedura obsługi zdarzeń nie jest potrzebna, aby dowiedzieć się, dlaczego połączenie się nie powiodło. LastError jest czyszczone przed każdą próbą i zawiera później ten sam tekst.
oClient := TsgcWebSocketClient.Create(nil);
oClient.Host := '127.0.0.1';
oClient.Port := 80;
if oClient.Connect(5000) then
oClient.WriteData('Hello from client')
else
ShowMessage('Connection failed');