TsgcWebSocketProxyServer › Events › OnBeforeHeartBeat
Wywoływane przed każdym pingiem HeartBeat, co pozwala aplikacji zaimplementować niestandardowe podtrzymanie połączenia dla podrzędnego klienta WebSocket.
property OnBeforeHeartBeat: TsgcWSOnBeforeHeartBeatEvent;
// TsgcWSOnBeforeHeartBeatEvent = procedure(Sender: TObject; const Connection: TsgcWSConnection; var Handled: Boolean) of object
—
Gdy HeartBeat jest włączony, serwer proxy wysyła standardowy ping WebSocket do każdego połączonego klienta downstream co HeartBeat.Interval sekund. Zdarzenie OnBeforeHeartBeat jest wywoływane bezpośrednio przed zapisaniem tego pingu dla każdego połączenia, dzięki czemu aplikacja może emitować własny ładunek keep-alive przez przekazane połączenie Connection. Ustawienie Handled na True pomija domyślny ping dla danego cyklu; pozostawienie wartości False (domyślnie) powoduje wysłanie standardowego pingu po powrocie procedury obsługi. Zdarzenia tego można używać do implementacji pulsów właściwych dla protokołu lub do różnicowania ładunku według połączenia; pingowane jest wyłącznie łącze WebSocket — połączenie TCP upstream nie jest dotykane przez to zdarzenie.
procedure OnBeforeHeartBeat(Sender: TObject; const Connection: TsgcWSConnection;
var Handled: Boolean);
begin
Connection.WriteData('ping');
Handled := True;
end;