TsgcTCPClient › Eventos › OnBeforeHeartBeat
Disparado antes de cada tick do HeartBeat para que a aplicação possa enviar um payload keep-alive personalizado.
property OnBeforeHeartBeat: TsgcWSOnBeforeHeartBeatEvent;
// TsgcWSOnBeforeHeartBeatEvent = procedure(Sender: TObject; const Connection: TsgcWSConnection; var Handled: Boolean) of object
—
Quando o HeartBeat está habilitado, o cliente acorda a cada HeartBeat.Interval segundos para manter a conexão TCP viva. Como o transporte TCP puro não tem frame de ping integrado, o heartbeat padrão é um no-op e espera-se que a aplicação emita qualquer payload que o peer espere (por exemplo, um pacote keep-alive específico do protocolo). OnBeforeHeartBeat é gerado a cada tick para que a aplicação possa escrever esse payload através da Connection fornecida; definir Handled como True simplesmente documenta que a aplicação cuidou do heartbeat e deixá-lo como False é equivalente, porque não há pacote padrão a enviar.
procedure OnBeforeHeartBeat(Sender: TObject; const Connection: TsgcWSConnection;
var Handled: Boolean);
begin
Connection.WriteData('PING' + #13#10);
Handled := True;
end;