TsgcTCPClient › Eventi › OnBeforeHeartBeat
Si attiva prima di ogni tick di HeartBeat in modo che l'applicazione possa inviare un payload keep-alive personalizzato.
property OnBeforeHeartBeat: TsgcWSOnBeforeHeartBeatEvent;
// TsgcWSOnBeforeHeartBeatEvent = procedure(Sender: TObject; const Connection: TsgcWSConnection; var Handled: Boolean) of object
—
Quando HeartBeat è abilitato, il client si attiva ogni HeartBeat.Interval secondi per mantenere attiva la connessione TCP. Poiché il trasporto TCP puro non dispone di un frame ping integrato, l'heartbeat predefinito è un no-op e l'applicazione deve emettere qualsiasi payload atteso dal peer (ad esempio un pacchetto keep-alive specifico del protocollo). OnBeforeHeartBeat viene generato a ogni tick affinché l'applicazione possa scrivere quel payload attraverso la Connection fornita; impostare Handled a True documenta semplicemente che l'applicazione si è occupata dell'heartbeat; lasciarlo a False è equivalente poiché non vi è alcun pacchetto predefinito da inviare.
procedure OnBeforeHeartBeat(Sender: TObject; const Connection: TsgcWSConnection;
var Handled: Boolean);
begin
Connection.WriteData('PING' + #13#10);
Handled := True;
end;