TsgcWebSocketProxyServer › 이벤트 › OnBinary

OnBinary 이벤트

다운스트림 WebSocket 클라이언트가 바이너리 메시지를 전송할 때마다 프록시가 업스트림으로 전달하기 전에 발생합니다.

구문

property OnBinary: TsgcWSBinaryEvent;
// TsgcWSBinaryEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream) of object

기본값

—

설명

OnBinary는 다운스트림 WebSocket 클라이언트로부터 전체 바이너리 페이로드가 수신되고 버퍼링되면 발생합니다. Data 매개변수는 0에 위치한 TMemoryStream으로 디코딩된 바이트를 노출합니다. 스트림은 서버가 소유하며 핸들러가 반환된 후 무효화되므로 핸들러 내부에서 읽으십시오. 프록시는 핸들러가 반환된 직후 이 페이로드를 업스트림 TCP 서버(Proxy.Host, Proxy.Port)로 중계하므로, 프레임이 전달되기 전에 검사하거나 기록하기에 편리한 곳입니다. 기본적으로 NotifyEvents는 neAsynchronous이므로 OnBinary는 메인 스레드와 동기화되어 UI 컨트롤을 다루는 것이 안전합니다. 처리량이 중요할 때는 neNoSync로 전환하여 연결 스레드에서 디스패치하십시오. Options.FragmentedMessages가 frgOnlyFragmented인 경우 이 이벤트는 발생하지 않고 OnFragmented가 대신 사용됩니다.

예제


procedure OnBinary(Connection: TsgcWSConnection; const Data: TMemoryStream);
var
  oBitmap: TBitmap;
begin
  oBitmap := TBitmap.Create;
  try
    oBitmap.LoadFromStream(Data);
    Image1.Picture.Assign(oBitmap);
  finally
    FreeAndNil(oBitmap);
  end;
end;

이벤트로 돌아가기