TsgcWebSocketClient › Eventi › OnFragmented
Si attiva per ogni frammento ricevuto quando Options.FragmentedMessages è frgAll o frgOnlyFragmented.
property OnFragmented: TsgcWSFragmentedEvent;
// TsgcWSFragmentedEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream; const OpCode: TOpCode; const Continuation: Boolean) of object
—
Per impostazione predefinita (Options.FragmentedMessages = frgOnlyBuffer) il client bufferizza i frammenti di un messaggio e genera OnMessage o OnBinary una volta ricevuto l'intero payload. Impostare la proprietà su frgOnlyFragmented per ricevere solo OnFragmented per ogni frammento, oppure su frgAll per ricevere OnFragmented per ogni frammento e poi OnMessage/OnBinary al completamento del messaggio. Il parametro Data è un TMemoryStream con i byte del frammento corrente, OpCode indica il tipo di frame originale (testo, binario, continuazione...), e Continuation è True finché sono attesi altri frammenti, False sull'ultimo frammento. Questo evento è utile per segnalare l'avanzamento di stream di grandi dimensioni.
procedure OnFragmented(Connection: TsgcWSConnection; const Data: TMemoryStream;
const OpCode: TOpCode; const Continuation: Boolean);
begin
ShowProgress(Data.Size);
if not Continuation then
SaveStream(Data);
end;