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)
此重载会阻塞调用线程,直到收到 pong 或超时为止,因此适用于交互式存活检查。当客户端未连接时,该方法立即返回 False。底层套接字引发的异常将被捕获并转发至 OnError。如需不阻塞的即发即忘式 ping,请改用无参数的另一个重载。
if not oClient.Ping(5000, 'healthcheck') then
oClient.Disconnect;