TsgcWebSocketServerEventos › OnFragmented

OnFragmented Evento

Se activa cuando se recibe un fragmento de un mensaje (solo cuando Options.FragmentedMessages es frgAll o frgOnlyFragmented).

Sintaxis

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

Valor Predeterminado

Observaciones

De forma predeterminada (Options.FragmentedMessages = frgOnlyBuffer), el servidor almacena en búfer los fragmentos de un mensaje y genera OnMessage u OnBinary una vez recibida la carga útil completa. Establezca FragmentedMessages en frgOnlyFragmented para recibir únicamente OnFragmented por cada fragmento, o en frgAll para recibir OnFragmented por cada 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 marco 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 cargas grandes.

Ejemplo


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

Volver a Eventos