TsgcWebSocketClientメソッド › Ping

Ping メソッド

サーバーに WebSocket ping フレームを送信し、pong レスポンスを待たずに即座に返ります。

オーバーロード

オーバーロード 1

構文

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

パラメータ

名前タイプ説明
aTextconst Stringping フレーム内に含めるオプションのペイロード。ペイロードなしで ping を送信するには空の文字列を渡してください。

解説

このオーバーロードは ping を発生させて呼び出し元をブロックしたり、一致する pong を待ったりすることなく、すぐに返します。クライアントが接続されていない場合は何もしません。サーバーから受け取った pong は標準の接続イベントを通じて非同期に配信されます。内部的には例外がトラップされ OnError にルーティングされます。ピアがまだ到達可能かどうかの確認が必要な場合は、もう一方のオーバーロードのタイムアウト版を使用してください。

使用例


oClient.Ping('keepalive');

オーバーロード 2

構文

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

パラメータ

名前タイプ説明
aTimeoutInteger포기する前に pong 応答を待機する最大時間(ミリ秒単位)。
aTextconst Stringping フレーム内に含めるオプションのペイロード。ペイロードなしで ping を送信するには空の文字列を渡してください。

戻り値

サーバーがタイムアウトウィンドウ内に一致する pong で返信した場合は True、そうでない場合は FalseFalse が返された場合、クライアントはピアが到達不能とみなして接続を閉じることを選択できます。(Boolean)

解説

このオーバーロードは、ポンが届くかタイムアウトが経過するまで呼び出しスレッドをブロックするため、インタラクティブな死活確認に役立ちます。クライアントが接続されていない場合、メソッドはすぐに False を返します。基礎となるソケットが発生させた例外はキャッチされ、OnError に転送されます。ブロックしないファイア・アンド・フォーゲット方式のピングには、パラメーターなしの別のオーバーロードを使用してください。

使用例


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

メソッドに戻る