TsgcWebSocketProxyServer › イベント › OnBeforeHeartBeat
各HeartBeatピングの前に発生し、アプリケーションがダウンストリームWebSocketクライアント用のカスタムキープアライブを実装できます。
property OnBeforeHeartBeat: TsgcWSOnBeforeHeartBeatEvent;
// TsgcWSOnBeforeHeartBeatEvent = procedure(Sender: TObject; const Connection: TsgcWSConnection; var Handled: Boolean) of object
—
HeartBeat が有効な場合、プロキシサーバーは HeartBeat.Interval 秒ごとに接続されているすべてのダウンストリームクライアントに標準 WebSocket ping を送信します。OnBeforeHeartBeat は、各接続に対してその ping が書き込まれる直前に発生するため、アプリケーションが提供された Connection でカスタムのキープアライブペイロードを送信できます。Handled を True に設定すると、このサイクルのデフォルト ping が抑制されます。False(デフォルト)のままにすると、ハンドラーが返った後に標準の ping が送信されます。プロトコル固有のハートビートを実装したり、接続ごとにペイロードを変えたりするために使用します。ここでは WebSocket レッグのみが ping されます。このイベントではアップストリーム TCP リンクは操作されません。
procedure OnBeforeHeartBeat(Sender: TObject; const Connection: TsgcWSConnection;
var Handled: Boolean);
begin
Connection.WriteData('ping');
Handled := True;
end;