TsgcWebSocketLoadBalancerServer › Zdarzenia › OnClientFragmented
Wywoływane po odebraniu sfragmentowanej binarnej ramki od klienta poniżej, przed jej przekazaniem do serwera backendu.
property OnClientFragmented: TsgcWSLBServerBinaryEvent;
// TsgcWSLBServerBinaryEvent = procedure(Connection: TsgcWSConnection; Data: TMemoryStream; var Handled: Boolean) of object
—
Zdarzenie OnClientFragmented jest wywoływane za każdym razem, gdy load balancer odbiera sfragmentowaną wiadomość WebSocket od klienta (włączone przez Options.FragmentedMessages na serwerze podrzędnym). Connection to sesja downstream, a Data zawiera ładunek dla bieżącego fragmentu. Ustawienie parametru Handled na True powoduje przechwycenie fragmentu przez load balancer i zatrzymanie jego przekazywania do backendu; pozostawienie wartości False sprawia, że load balancer przekazuje fragment bez zmian. Typowym zastosowaniem jest lekka inspekcja lub filtrowanie bardzo dużych przesyłek bez konieczności ponownego składania całej wiadomości.
procedure OnClientFragmented(Connection: TsgcWSConnection; Data: TMemoryStream;
var Handled: Boolean);
begin
Log(Format('Fragment %d bytes from %s', [Data.Size, Connection.Guid]));
Handled := False;
end;