Po skonfigurowaniu klienta do połączenia z serwerem dostępne są 3 różne opcje otwarcia nowego połączenia.
Najprostszym sposobem otwarcia nowego połączenia jest ustawienie właściwości Active na True. Spowoduje to próbę połączenia z serwerem przy użyciu konfiguracji komponentu.
Ustawienie właściwości Active na false spowoduje zamknięcie połączenia, jeśli jest aktywne.
Metoda ta jest wykonywana w tym samym wątku co wywołujący. Jeśli zostanie wywołana z wątku głównego, metoda zostanie wykonana w wątku głównym aplikacji.
Otwórz połączenie
oClient := TsgcWebSocketClient.Create(nil);
...
oClient.Active := true;
Po ustawieniu Active = true nadal nie można wysyłać danych do serwera, ponieważ klient może jeszcze nawiązywać połączenie. Należy najpierw poczekać na zdarzenie OnConnect, a dopiero potem można rozpocząć wysyłanie wiadomości do serwera.
Zamknij połączenie
oClient.Active := false;
Po ustawieniu Active = false nie można mieć pewności, że połączenie jest już zamknięte bezpośrednio po tym kodzie, dlatego należy poczekać, aż zostanie wywołane zdarzenie OnDisconnect.
Wywołanie metody Start() lub Stop() w celu nawiązania lub zakończenia połączenia z serwerem jest wykonywane w wątku pomocniczym, dlatego nie blokuje wątku, z którego zostało wywołane. Należy użyć tej metody, gdy wymagane jest nawiązanie połączenia z serwerem bez wstrzymywania wykonywania kodu poniżej.
Otwórz połączenie
oClient := TsgcWebSocketClient.Create(nil);
...
oClient.Start();
Po wywołaniu Start(), nadal nie można wysyłać danych do serwera, ponieważ klient może być jeszcze w trakcie nawiązywania połączenia. Należy najpierw poczekać na wywołanie zdarzenia OnConnect, a dopiero potem można rozpocząć wysyłanie wiadomości do serwera.
Zamknij połączenie
oClient.Stop();
Po wywołaniu Stop(), nie można mieć pewności, że połączenie jest już zamknięte bezpośrednio po wykonaniu tego kodu, dlatego należy poczekać na wyzwolenie zdarzenia OnDisconnect.
Wywołanie metody Connect() lub Disconnect() w celu otwarcia lub zamknięcia połączenia z serwerem jest wykonywane w tym samym wątku, w którym zostało wywołane, ale oczekuje na zakończenie operacji. Należy ustawić wartość Timeout, która określa maksymalny czas oczekiwania na zakończenie operacji (domyślnie 10 sekund).
Przykład: połączenie z serwerem i oczekiwanie maksymalnie 5 sekund
oClient := TsgcWebSocketClient.Create(nil);
...
if oClient.Connect(5000) then
oClient.WriteData('Hello from client')
else
Error();
Jeśli metoda Connect() zwróci pomyślny wynik, można już wysłać wiadomość do serwera, ponieważ połączenie jest aktywne.
Przykład: rozłącz z serwerem i czekaj do 10 sekund
if oClient.Disconnect(10000) then
ShowMessage('Disconnected')
else
ShowMessage('Not Disconnected');
Jeżeli metoda Disconnect() zwróci wynik powodzenia, oznacza to, że połączenie jest już zamknięte.
Zdarzenie OnBeforeConnect może być użyte do dostosowania właściwości połączenia serwera, zanim klient spróbuje się z nim połączyć.