TsgcWebSocketClientMetody › Ping

Ping Metoda

Wysyła ramkę ping WebSocket do serwera i powraca natychmiast, bez oczekiwania na odpowiedź pong.

Przeciążenia

Przeciążenie 1

Składnia

procedure Ping(const aText: String = '');

Parametry

NazwaTypOpis
aTextconst StringOpcjonalny ładunek do przekazania wewnątrz ramki ping; należy podać pusty ciąg znaków, aby wysłać ping bez ładunku.

Uwagi

To przeciążenie wysyła ping i natychmiast wraca, nie blokując wywołującego ani nie czekając na odpowiedź pong. Nie wykonuje żadnej operacji, gdy klient nie jest połączony. Każdy pong odebrany od serwera jest dostarczany asynchronicznie przez standardowe zdarzenia połączenia. Wewnętrznie wyjątki są przechwytywane i przekazywane do OnError. Należy użyć przeciążenia z limitem czasu drugiego przeciążenia, gdy wymagane jest potwierdzenie, że partner jest nadal osiągalny.

Przykład


oClient.Ping('keepalive');

Przeciążenie 2

Składnia

function Ping(aTimeout: Integer; const aText: String = '') : Boolean;

Parametry

NazwaTypOpis
aTimeoutIntegerMaksymalny czas w milisekundach oczekiwania na odpowiedź pong przed rezygnacją.
aTextconst StringOpcjonalny ładunek do przekazania wewnątrz ramki ping; należy podać pusty ciąg znaków, aby wysłać ping bez ładunku.

Wartość zwracana

True jeśli serwer odpowiedział pasującym pongiem w oknie limitu czasu; False w przeciwnym razie. Gdy zwrócono False, klient może zdecydować się zamknąć połączenie, ponieważ peer jest uznawany za nieosiągalny. (Boolean)

Uwagi

To przeciążenie blokuje wątek wywołujący do momentu nadejścia pong lub upłynięcia limitu czasu, co jest przydatne do interaktywnych kontroli żywotności. Metoda zwraca False natychmiast, gdy klient nie jest połączony. Wyjątki zgłoszone przez bazowe gniazdo są przechwytywane i przekazywane do OnError. Aby wysłać ping bez blokowania, należy użyć bezparametrowego drugiego przeciążenia.

Przykład


if not oClient.Ping(5000, 'healthcheck') then
  oClient.Disconnect;

Powrót do metod