TsgcTCPClient › Gebeurtenissen › OnBeforeHeartBeat
Wordt geactiveerd vóór elke HeartBeat-tik zodat de toepassing een aangepaste keep-alive-payload kan verzenden.
property OnBeforeHeartBeat: TsgcWSOnBeforeHeartBeatEvent;
// TsgcWSOnBeforeHeartBeatEvent = procedure(Sender: TObject; const Connection: TsgcWSConnection; var Handled: Boolean) of object
—
Wanneer HeartBeat is ingeschakeld, wordt de client elke HeartBeat.Interval seconden wakker om de TCP-verbinding in leven te houden. Omdat het platte TCP-transport geen ingebouwd ping-frame heeft, is de standaard-heartbeat een no-op en wordt van de toepassing verwacht dat deze de payload uitzendt die de peer verwacht (bijvoorbeeld een protocolspecifiek keep-alive-pakket). OnBeforeHeartBeat wordt bij elke tick geactiveerd, zodat de toepassing die payload via de aangeleverde Connection kan schrijven; het instellen van Handled op True documenteert eenvoudigweg dat de toepassing de heartbeat heeft afgehandeld, en het op False laten is gelijkwaardig omdat er geen standaardpakket is om te verzenden.
procedure OnBeforeHeartBeat(Sender: TObject; const Connection: TsgcWSConnection;
var Handled: Boolean);
begin
Connection.WriteData('PING' + #13#10);
Handled := True;
end;