TsgcWebSocketServer_HTTPAPI › 이벤트 › OnBinary
클라이언트가 바이너리 메시지를 보내고 서버가 이를 수신할 때마다 발생합니다.
property OnBinary: TsgcWSBinaryEvent;
// TsgcWSBinaryEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream) of object
—
OnBinary는 클라이언트로부터 전체 바이너리 페이로드가 수신되어 버퍼링되면 발생합니다. Data 매개변수는 위치 0에 있는 TMemoryStream으로 디코딩된 바이트를 노출합니다. 스트림은 서버가 소유하며 핸들러가 반환된 후 무효화되므로 핸들러 내에서 읽으십시오. 이 이벤트는 수신 HTTP.SYS WebSocket 프레임을 처리한 IOCP 작업자 스레드에서 실행되므로, UI 컨트롤을 다루기 전에 메인 스레드로 마샬링하십시오. 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;