TsgcWebSocketClient › メソッド › Ping
サーバーに WebSocket ping フレームを送信し、pong レスポンスを待たずに即座に返ります。
procedure Ping(const aText: String = '');
| 名前 | タイプ | 説明 |
|---|---|---|
aText | const String | ping フレーム内に含めるオプションのペイロード。ペイロードなしで ping を送信するには空の文字列を渡してください。 |
このオーバーロードは ping を発生させて呼び出し元をブロックしたり、一致する pong を待ったりすることなく、すぐに返します。クライアントが接続されていない場合は何もしません。サーバーから受け取った pong は標準の接続イベントを通じて非同期に配信されます。内部的には例外がトラップされ OnError にルーティングされます。ピアがまだ到達可能かどうかの確認が必要な場合は、もう一方のオーバーロードのタイムアウト版を使用してください。
oClient.Ping('keepalive');
function Ping(aTimeout: Integer; const aText: String = '') : Boolean;
| 名前 | タイプ | 説明 |
|---|---|---|
aTimeout | Integer | 포기する前に pong 応答を待機する最大時間(ミリ秒単位)。 |
aText | const String | ping フレーム内に含めるオプションのペイロード。ペイロードなしで ping を送信するには空の文字列を渡してください。 |
サーバーがタイムアウトウィンドウ内に一致する pong で返信した場合は True、そうでない場合は False。False が返された場合、クライアントはピアが到達不能とみなして接続を閉じることを選択できます。(Boolean)
このオーバーロードは、ポンが届くかタイムアウトが経過するまで呼び出しスレッドをブロックするため、インタラクティブな死活確認に役立ちます。クライアントが接続されていない場合、メソッドはすぐに False を返します。基礎となるソケットが発生させた例外はキャッチされ、OnError に転送されます。ブロックしないファイア・アンド・フォーゲット方式のピングには、パラメーターなしの別のオーバーロードを使用してください。
if not oClient.Ping(5000, 'healthcheck') then
oClient.Disconnect;