TsgcWebSocketServer | Server Receive Binary Message

서버가 바이너리 메시지를 수신하면 OnBinary 이벤트가 발생합니다. 수신된 바이너리 메시지를 검색하려면 Data 매개변수를 읽으십시오.


procedure OnBinary(Connection: TsgcWSConnection; const Data: TMemoryStream);
var
  oBitmap: TBitmap;
begin
  oBitmap := TBitmap.Create;
  Try
    oBitmap.LoadFromStream(Data);
    Image1.Picture.Assign(oBitmap);
    Log(
      '#image uncompressed size: ' + IntToStr(Data.Size) +
      '. Total received: ' + IntToStr(Connection.RecBytes));
  Finally
    FreeAndNil(oBitmap);
  End;
end;

기본적으로 서버는 OnMessage 이벤트를 디스패치하기 위해 neAsynchronous 방법을 사용합니다. 이는 이 이벤트가 Main Thread의 컨텍스트에서 실행됨을 의미하므로, 예를 들어 폼의 컨트롤을 업데이트하는 것이 스레드 안전합니다.

 

서버가 많은 메시지를 수신하거나 다른 스레드와의 동기화를 제어해야 하는 경우, NotifyEvents 속성을 neNoSync로 설정하십시오. 이는 OnMessage 이벤트가 연결 스레드의 컨텍스트에서 실행됨을 의미하므로, 폼의 컨트롤을 업데이트하거나 공유 객체에 접근해야 하는 경우 자체 동기화 메서드를 구현해야 합니다.