TsgcTCPClient › Événements › OnBeforeHeartBeat

OnBeforeHeartBeat Événement

Se déclenche avant chaque tick HeartBeat pour que l'application puisse envoyer une charge utile de maintien en vie personnalisée.

Syntaxe

property OnBeforeHeartBeat: TsgcWSOnBeforeHeartBeatEvent;
// TsgcWSOnBeforeHeartBeatEvent = procedure(Sender: TObject; const Connection: TsgcWSConnection; var Handled: Boolean) of object

Valeur par défaut

—

Remarques

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.

Exemple


procedure OnBeforeHeartBeat(Sender: TObject; const Connection: TsgcWSConnection;
  var Handled: Boolean);
begin
  Connection.WriteData('PING' + #13#10);
  Handled := True;
end;

Retour aux événements