TsgcTCPClient › 事件 › OnBeforeHeartBeat
在每次 HeartBeat 计时前触发,以便应用程序可以发送自定义的保活负载。
property OnBeforeHeartBeat: TsgcWSOnBeforeHeartBeatEvent;
// TsgcWSOnBeforeHeartBeatEvent = procedure(Sender: TObject; const Connection: TsgcWSConnection; var Handled: Boolean) of object
—
启用 HeartBeat 后,客户端每隔 HeartBeat.Interval 秒唤醒一次以保持 TCP 连接存活。由于普通 TCP 传输没有内置的 ping 帧,默认心跳是空操作,应用程序应发出对端期望的任何有效载荷(例如协议特定的保活数据包)。OnBeforeHeartBeat 在每次计时时触发,以便应用程序可以通过提供的 Connection 写入该有效载荷;将 Handled 设置为 True 仅表明应用程序已处理了心跳,保持为 False 等效,因为没有默认数据包要发送。
procedure OnBeforeHeartBeat(Sender: TObject; const Connection: TsgcWSConnection;
var Handled: Boolean);
begin
Connection.WriteData('PING' + #13#10);
Handled := True;
end;