TsgcWebSocketProxyServer › Ereignisse › OnBeforeHeartBeat
Wird vor jedem HeartBeat-Ping ausgelöst, sodass die Anwendung ein benutzerdefiniertes Keep-Alive für einen Downstream-WebSocket-Client implementieren kann.
property OnBeforeHeartBeat: TsgcWSOnBeforeHeartBeatEvent;
// TsgcWSOnBeforeHeartBeatEvent = procedure(Sender: TObject; const Connection: TsgcWSConnection; var Handled: Boolean) of object
—
Wenn HeartBeat aktiviert ist, sendet der Proxy-Server alle HeartBeat.Interval Sekunden einen standardmäßigen WebSocket-Ping an jeden verbundenen Downstream-Client. OnBeforeHeartBeat wird unmittelbar vor dem Schreiben dieses Pings für jede Verbindung ausgelöst, sodass die Anwendung ihr eigenes Keep-Alive-Payload auf der bereitgestellten Connection ausgeben kann. Das Setzen von Handled auf True unterdrückt den Standard-Ping für diesen Zyklus; das Belassen auf False (der Standard) lässt den Standard-Ping nach Rückkehr des Handlers senden. Verwenden Sie es, um protokollspezifische Heartbeats zu implementieren oder das Payload pro Verbindung zu variieren; nur die WebSocket-Strecke wird hier gepingt, die Upstream-TCP-Verbindung wird von diesem Ereignis nicht berührt.
procedure OnBeforeHeartBeat(Sender: TObject; const Connection: TsgcWSConnection;
var Handled: Boolean);
begin
Connection.WriteData('ping');
Handled := True;
end;