TsgcWebSocketHTTPServer › Eventi › OnFragmented
Generato quando viene ricevuto un frammento di un messaggio (solo 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 server memorizza i frammenti di un messaggio WebSocket e genera OnMessage o OnBinary una volta ricevuto l'intero payload. Impostare FragmentedMessages su frgOnlyFragmented per ricevere solo OnFragmented per ogni frammento, o 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 e False sull'ultimo frammento. Questo evento è utile per segnalare l'avanzamento di upload 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;