TsgcWebSocketServer_HTTPAPI이벤트 › OnFragmented

OnFragmented Event

메시지의 프래그먼트가 수신될 때 발생합니다(Options.FragmentedMessages가 frgAll 또는 frgOnlyFragmented인 경우에만).

구문

__property TsgcWSFragmentedEvent OnFragmented;
// typedef void __fastcall (__closure *TsgcWSFragmentedEvent)(TsgcWSConnection * Connection, const TMemoryStream * Data, const TOpCode OpCode, const bool Continuation);

기본값

설명

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

예제


void OnFragmented(TsgcWSConnection *Connection, const TMemoryStream *Data,
  const TOpCode OpCode, const bool Continuation)
{
  ShowProgress(Data->Size);
  if (Continuation == false)
    SaveStream(Data);
}

이벤트로 돌아가기