TsgcWebSocketClient | Client Open Connection

Po skonfigurowaniu klienta do połączenia z serwerem dostępne są 3 różne opcje otwarcia nowego połączenia.

 

Właściwość Active

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.

 

 

Metody Start/Stop

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.

 

 

Metody Connect/Disconnect

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