TsgcTCPClient › イベント › OnBeforeHeartBeat

OnBeforeHeartBeat イベント

各 HeartBeat ティックの前に発生し、アプリケーションがカスタムのキープアライブペイロードを送信できます。

構文

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

デフォルト値

—

解説

HeartBeatが有効な場合、クライアントはHeartBeat.Interval秒ごとに起動してTCP接続を維持します。プレーンなTCPトランスポートには組み込みのpingフレームがないため、デフォルトのハートビートは何も行わず、ピアが期待するペイロード(例えばプロトコル固有のキープアライブパケット)をアプリケーションが送信することが期待されます。OnBeforeHeartBeatは各ティックで発生するので、アプリケーションは提供されたConnectionを通じてそのペイロードを書き込むことができます。HandledをTrueに設定すると、アプリケーションがハートビートを処理したことを示すだけであり、送信するデフォルトパケットが存在しないため、Falseのままにしても同等です。

使用例


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

イベントに戻る