TsgcWebSocketServer_HTTPAPI › 이벤트 › OnFragmented
메시지의 프래그먼트가 수신될 때 발생합니다(Options.FragmentedMessages가 frgAll 또는 frgOnlyFragmented인 경우에만).
property OnFragmented: TsgcWSFragmentedEvent;
// TsgcWSFragmentedEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream; const OpCode: TOpCode; const Continuation: Boolean) of object
—
기본적으로(Options.FragmentedMessages = frgOnlyBuffer) 서버는 메시지의 프래그먼트를 버퍼링하고 전체 페이로드가 수신되면 OnMessage 또는 OnBinary를 발생시킵니다. 프래그먼트당 OnFragmented만 수신하려면 FragmentedMessages를 frgOnlyFragmented로 설정하고, 프래그먼트당 OnFragmented를 수신한 다음 메시지가 완성되면 OnMessage/OnBinary를 수신하려면 frgAll로 설정하십시오. Data 매개변수는 현재 프래그먼트의 바이트를 담은 TMemoryStream이며, OpCode는 원래 프레임 유형(텍스트, 바이너리, 연속...)을 나타내고, Continuation은 더 많은 프래그먼트가 예상되는 동안 True이고 마지막 프래그먼트에서는 False입니다. 이 이벤트는 대용량 업로드의 진행 상황을 보고하는 데 유용합니다.
procedure OnFragmented(Connection: TsgcWSConnection; const Data: TMemoryStream;
const OpCode: TOpCode; const Continuation: Boolean);
begin
ShowProgress(Data.Size);
if not Continuation then
SaveStream(Data);
end;