TsgcWebSocketProxyServer › Gebeurtenissen › OnFragmented
Wordt geactiveerd wanneer een fragment van een bericht wordt ontvangen van een downstreamclient (alleen wanneer Options.FragmentedMessages frgAll of frgOnlyFragmented is).
property OnFragmented: TsgcWSFragmentedEvent;
// TsgcWSFragmentedEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream; const OpCode: TOpCode; const Continuation: Boolean) of object
—
Standaard (Options.FragmentedMessages = frgOnlyBuffer) buffert de proxy de fragmenten van een downstream-bericht en activeert OnMessage of OnBinary zodra de volledige payload is ontvangen en stuurt deze upstream door. Stel FragmentedMessages in op frgOnlyFragmented om alleen OnFragmented per fragment te ontvangen, of op frgAll om OnFragmented per fragment te ontvangen en vervolgens OnMessage/OnBinary wanneer het bericht volledig is. De parameter Data is een TMemoryStream met de bytes van het huidige fragment; OpCode geeft het oorspronkelijke frametype aan (tekst, binair, voortzetting...) en Continuation is True zolang er meer fragmenten worden verwacht en False bij het laatste fragment. Deze gebeurtenis is nuttig om de voortgang van grote uploads die via de proxy worden verstuurd, te melden.
procedure OnFragmented(Connection: TsgcWSConnection; const Data: TMemoryStream;
const OpCode: TOpCode; const Continuation: Boolean);
begin
ShowProgress(Data.Size);
if not Continuation then
SaveStream(Data);
end;