TsgcWebSocketProxyServer › Eventi › OnFragmented

OnFragmented Evento

Si attiva quando viene ricevuto un frammento di un messaggio da un client a valle (solo quando Options.FragmentedMessages è frgAll o frgOnlyFragmented).

Sintassi

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

Valore predefinito

—

Note

Per impostazione predefinita (Options.FragmentedMessages = frgOnlyBuffer) il proxy memorizza nel buffer i frammenti di un messaggio downstream e attiva OnMessage o OnBinary una volta ricevuto l'intero payload, inoltrandolo upstream. Impostare FragmentedMessages 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 e False sull'ultimo frammento. Questo evento è utile per riportare l'avanzamento di upload di grandi dimensioni in corso di proxy.

Esempio


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

Torna agli Eventi