TsgcWebSocketServer_HTTPAPIEventos › OnFragmented

OnFragmented Event

Disparado quando um fragmento de uma mensagem é recebido (somente 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 servidor armazena em buffer os fragmentos de uma mensagem e gera OnMessage ou OnBinary assim que o payload completo é recebido. Defina FragmentedMessages 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 do frame original (texto, binário, continuação...), e Continuation é True enquanto mais fragmentos forem esperados e False no fragmento final. Este evento é útil para reportar o progresso de uploads 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