TsgcWebSocketClientEventos › OnFragmented

OnFragmented Event

Disparado para cada fragmento recebido quando Options.FragmentedMessages é frgAll ou frgOnlyFragmented.

Sintaxe

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

Valor Padrão

Observações

Por padrão (Options.FragmentedMessages = frgOnlyBuffer), o cliente armazena em buffer os fragmentos de uma mensagem e gera OnMessage ou OnBinary quando a carga útil completa é recebida. Defina a propriedade como frgOnlyFragmented para receber apenas OnFragmented por fragmento, ou como frgAll para receber OnFragmented por fragmento e, em seguida, OnMessage/OnBinary quando a mensagem estiver completa. O parâmetro Data é um TMemoryStream com os bytes do fragmento atual, OpCode indica o tipo de frame original (text, binary, continuation...), e Continuation é True enquanto mais fragmentos forem esperados e False no fragmento final. Este evento é útil para reportar o progresso de streams grandes.

Exemplo


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

Voltar para Eventos