TsgcWebSocketClient › Methoden › Ping

Ping Methode

Stuurt een WebSocket ping-frame naar de server en keert onmiddellijk terug zonder te wachten op de pong-respons.

Overloads

Overload 1

Syntaxis

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

Parameters

NaamTypeBeschrijving
aTextconst StringOptionele payload in het ping-frame; geef een lege tekenreeks door om een ping zonder payload te verzenden.

Opmerkingen

Deze overload activeert de ping en keert onmiddellijk terug, zonder de aanroeper te blokkeren of te wachten op de overeenkomende pong. Wanneer de client geen verbinding heeft, wordt er niets verzonden en wordt de fout gemeld via OnError met Connection = nil en de foutmelding Data not sent, the client is not connected or its handshake has not completed. De gebeurtenis wordt geactiveerd op de aanroepende thread voordat Ping terugkeert, en er wordt geen uitzondering naar de aanroeper gegenereerd. Stel Options.RaiseDisconnectExceptions in op False om deze melding over te slaan. Een ping die wordt verzonden voordat de WebSocket-handshake is voltooid, wordt niet als fout gemeld, omdat de HeartBeat ook via deze methode pingt. Elke pong die van de server wordt ontvangen, wordt asynchroon afgeleverd via de standaard verbindingsgebeurtenissen. Intern worden uitzonderingen onderschept en doorgestuurd naar OnError. Gebruik de timeout-overload van de andere overload wanneer u bevestiging nodig heeft dat de peer nog bereikbaar is.

Voorbeeld


oClient.Ping('keepalive');

Overload 2

Syntaxis

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

Parameters

NaamTypeBeschrijving
aTimeoutIntegerMaximale wachttijd in milliseconden voor de pong-reactie voordat wordt opgegeven.
aTextconst StringOptionele payload in het ping-frame; geef een lege tekenreeks door om een ping zonder payload te verzenden.

Retourwaarde

True als de server binnen het time-outvenster met een overeenkomende pong heeft geantwoord; False anders. Wanneer False wordt geretourneerd, kan de client ervoor kiezen de verbinding te sluiten omdat de peer als onbereikbaar wordt beschouwd. (Boolean)

Opmerkingen

Deze overbelasting blokkeert de aanroependraad totdat de pong aankomt of de time-out verstrijkt, waardoor het handig is voor interactieve liveness-controles. De methode retourneert onmiddellijk False wanneer de client geen verbinding heeft, en meldt dit via OnError met Connection = nil, zoals beschreven voor de andere overbelasting. Uitzonderingen die worden gegenereerd door de onderliggende socket worden opgevangen en doorgestuurd naar OnError. Gebruik voor een fire-and-forget ping die niet blokkeert de andere overbelasting overbelasting.

Voorbeeld


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

Terug naar methoden