TsgcWebSocketHTTPServer › Events › OnFragmented
Wordt geactiveerd wanneer een fragment van een bericht wordt ontvangen (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 server de fragmenten van een WebSocket-bericht en activeert OnMessage of OnBinary zodra de volledige payload is ontvangen. Stel FragmentedMessages in op frgOnlyFragmented om alleen OnFragmented per fragment te ontvangen, of op frgAll om OnFragmented per fragment en vervolgens OnMessage/OnBinary te ontvangen 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. Dit event is nuttig om de voortgang van grote uploads te rapporteren.
procedure OnFragmented(Connection: TsgcWSConnection; const Data: TMemoryStream;
const OpCode: TOpCode; const Continuation: Boolean);
begin
ShowProgress(Data.Size);
if not Continuation then
SaveStream(Data);
end;