TsgcWebSocketClient › Events › OnFragmented
Déclenché pour chaque fragment reçu lorsque Options.FragmentedMessages vaut frgAll ou frgOnlyFragmented.
property OnFragmented: TsgcWSFragmentedEvent;
// TsgcWSFragmentedEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream; const OpCode: TOpCode; const Continuation: Boolean) of object
—
Par défaut (Options.FragmentedMessages = frgOnlyBuffer), le client met en mémoire tampon les fragments d'un message et déclenche OnMessage ou OnBinary une fois la charge utile complète reçue. Définissez la propriété à frgOnlyFragmented pour recevoir uniquement OnFragmented par fragment, ou à frgAll pour recevoir OnFragmented par fragment puis OnMessage/OnBinary lorsque le message est complet. Le paramètre Data est un TMemoryStream avec les octets du fragment courant, OpCode indique le type de trame original (texte, binaire, continuation...) et Continuation est True tant que d'autres fragments sont attendus et False sur le fragment final. Cet événement est utile pour signaler la progression des grands flux.
procedure OnFragmented(Connection: TsgcWSConnection; const Data: TMemoryStream;
const OpCode: TOpCode; const Continuation: Boolean);
begin
ShowProgress(Data.Size);
if not Continuation then
SaveStream(Data);
end;