TsgcWebSocketClient › Eventos › OnFragmented
Disparado para cada fragmento recebido quando Options.FragmentedMessages é frgAll ou frgOnlyFragmented.
property OnFragmented: TsgcWSFragmentedEvent;
// TsgcWSFragmentedEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream; const OpCode: TOpCode; const Continuation: Boolean) of object
—
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.
procedure OnFragmented(Connection: TsgcWSConnection; const Data: TMemoryStream;
const OpCode: TOpCode; const Continuation: Boolean);
begin
ShowProgress(Data.Size);
if not Continuation then
SaveStream(Data);
end;