TsgcWebSocketProxyServer › Events › OnFragmented

OnFragmented Événement

Se déclenche lorsqu'un fragment d'un message est reçu d'un client aval (uniquement lorsque Options.FragmentedMessages est frgAll ou frgOnlyFragmented).

Syntaxe

property OnFragmented: TsgcWSFragmentedEvent;
// TsgcWSFragmentedEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream; const OpCode: TOpCode; const Continuation: Boolean) of object

Valeur par défaut

—

Remarques

Par défaut (Options.FragmentedMessages = frgOnlyBuffer), le proxy met en mémoire tampon les fragments d'un message en aval et déclenche OnMessage ou OnBinary une fois la charge utile complète reçue, puis la transmet en amont. Définissez FragmentedMessages sur frgOnlyFragmented pour recevoir uniquement OnFragmented par fragment, ou sur 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 actuel, 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 dernier fragment. Cet événement est utile pour signaler la progression des grandes importations en cours de proxying.

Exemple


procedure OnFragmented(Connection: TsgcWSConnection; const Data: TMemoryStream;
  const OpCode: TOpCode; const Continuation: Boolean);
begin
  ShowProgress(Data.Size);
  if not Continuation then
    SaveStream(Data);
end;

Retour aux événements