TsgcWebSocketServer_HTTPAPI › Eventos › OnFragmented
Disparado quando um fragmento de uma mensagem é recebido (somente 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 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.
procedure OnFragmented(Connection: TsgcWSConnection; const Data: TMemoryStream;
const OpCode: TOpCode; const Continuation: Boolean);
begin
ShowProgress(Data.Size);
if not Continuation then
SaveStream(Data);
end;