TsgcWebSocketProxyServer › Eventos › OnFragmented
Se dispara cuando se recibe un fragmento de un mensaje de un cliente descendente (solo cuando Options.FragmentedMessages es frgAll o frgOnlyFragmented).
property OnFragmented: TsgcWSFragmentedEvent;
// TsgcWSFragmentedEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream; const OpCode: TOpCode; const Continuation: Boolean) of object
—
De forma predeterminada (Options.FragmentedMessages = frgOnlyBuffer), el proxy almacena en búfer los fragmentos de un mensaje descendente y activa OnMessage o OnBinary una vez que se ha recibido el payload completo, y lo reenvía hacia arriba. Establezca FragmentedMessages en frgOnlyFragmented para recibir solo OnFragmented por fragmento, o en frgAll para recibir OnFragmented por fragmento y luego OnMessage/OnBinary cuando el mensaje esté completo. El parámetro Data es un TMemoryStream con los bytes del fragmento actual, OpCode indica el tipo de trama original (texto, binario, continuación...) y Continuation es True mientras se esperan más fragmentos y False en el fragmento final. Este evento es útil para informar del progreso de las cargas grandes que se están procesando en el proxy.
procedure OnFragmented(Connection: TsgcWSConnection; const Data: TMemoryStream;
const OpCode: TOpCode; const Continuation: Boolean);
begin
ShowProgress(Data.Size);
if not Continuation then
SaveStream(Data);
end;