TsgcWebSocketClientMethoden › Ping

Ping Methode

Sendet einen WebSocket-Ping-Frame an den Server und kehrt sofort zurück, ohne auf die Pong-Antwort zu warten.

Überladungen

Overload 1

Syntax

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

Parameter

NameTypBeschreibung
aTextconst StringOptionale Payload, die im Ping-Frame mitgeführt wird; übergeben Sie einen leeren String, um einen Ping ohne Payload zu senden.

Hinweise

Diese Überladung sendet den Ping und kehrt sofort zurück, ohne den Aufrufer zu blockieren oder auf das zugehörige Pong zu warten. Sie ist eine No-Op, wenn der Client nicht verbunden ist. Jedes vom Server empfangene Pong wird asynchron über die Standard-Verbindungsereignisse zugestellt. Intern werden Ausnahmen abgefangen und an OnError weitergeleitet. Verwenden Sie die Timeout-Überladung der anderen Überladung, wenn Sie eine Bestätigung benötigen, dass der Peer noch erreichbar ist.

Beispiel


oClient.Ping('keepalive');

Überladung 2

Syntax

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

Parameter

NameTypBeschreibung
aTimeoutIntegerMaximale Zeit in Millisekunden, die auf die Pong-Antwort gewartet wird, bevor aufgegeben wird.
aTextconst StringOptionale Payload, die im Ping-Frame mitgeführt wird; übergeben Sie einen leeren String, um einen Ping ohne Payload zu senden.

Rückgabewert

True, wenn der Server innerhalb des Timeout-Fensters mit einem passenden Pong geantwortet hat; andernfalls False. Wenn False zurückgegeben wird, kann der Client die Verbindung schließen, da der Peer als nicht erreichbar gilt. (Boolean)

Hinweise

Diese Überladung blockiert den aufrufenden Thread, bis entweder der Pong eintrifft oder das Zeitlimit abläuft, sodass sie für interaktive Lebendigkeitsprüfungen nützlich ist. Die Methode gibt sofort False zurück, wenn der Client nicht verbunden ist. Vom zugrunde liegenden Socket ausgelöste Ausnahmen werden abgefangen und an OnError weitergeleitet. Verwenden Sie für einen Fire-and-Forget-Ping, der nicht blockiert, stattdessen die parameterlose andere Überladung.

Beispiel


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

Zurück zu Methoden