TsgcTCPClient › Événements › OnBeforeHeartBeat
Se déclenche avant chaque tick HeartBeat pour que l'application puisse envoyer une charge utile de maintien en vie personnalisée.
property OnBeforeHeartBeat: TsgcWSOnBeforeHeartBeatEvent;
// TsgcWSOnBeforeHeartBeatEvent = procedure(Sender: TObject; const Connection: TsgcWSConnection; var Handled: Boolean) of object
—
Lorsque HeartBeat est activé, le client se réveille toutes les HeartBeat.Interval secondes pour maintenir la connexion TCP active. Comme le transport TCP brut ne dispose pas de trame ping intégrée, le heartbeat par défaut est une opération nulle et l'application est censée émettre la charge utile que le pair attend (par exemple un paquet keep-alive spécifique au protocole). OnBeforeHeartBeat est levé à chaque tick afin que l'application puisse écrire cette charge utile via la connexion fournie ; définir Handled sur True documente simplement que l'application s'est occupée du heartbeat, et le laisser à False est équivalent car il n'y a pas de paquet par défaut à envoyer.
procedure OnBeforeHeartBeat(Sender: TObject; const Connection: TsgcWSConnection;
var Handled: Boolean);
begin
Connection.WriteData('PING' + #13#10);
Handled := True;
end;