클라이언트가 바이너리 메시지를 수신하면 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 방식을
사용하며, 이는 이
이벤트가 메인 스레드의 컨텍스트에서 실행됨을 의미하므로, 예를 들어 폼의
컨트롤을 업데이트하는 것이 스레드로부터 안전합니다.
클라이언트가
많은 메시지를 수신하거나 다른 스레드와의 동기화를 제어해야 하는 경우,
NotifyEvents 속성을 neNoSync로 설정하십시오.
이는 OnMessage 이벤트가 e연결 스레드의 컨텍스트에서
실행됨을 의미하므로, 폼의 컨트롤을 업데이트하거나
공유 객체에 액세스해야 하는 경우 사용자가 직접
동기화 방법을 구현해야 합니다.