TsgcWebSocketClient › Metody › Ping
Wysyła ramkę ping WebSocket do serwera i powraca natychmiast, bez oczekiwania na odpowiedź pong.
procedure Ping(const aText: String = '');
| Nazwa | Typ | Opis |
|---|---|---|
aText | const String | Opcjonalny ładunek do przekazania wewnątrz ramki ping; należy podać pusty ciąg znaków, aby wysłać ping bez ładunku. |
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.
oClient.Ping('keepalive');
function Ping(aTimeout: Integer; const aText: String = '') : Boolean;
| Nazwa | Typ | Opis |
|---|---|---|
aTimeout | Integer | Maksymalny czas w milisekundach oczekiwania na odpowiedź pong przed rezygnacją. |
aText | const String | Opcjonalny ładunek do przekazania wewnątrz ramki ping; należy podać pusty ciąg znaków, aby wysłać ping bez ładunku. |
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)
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.
if not oClient.Ping(5000, 'healthcheck') then
oClient.Disconnect;