ByteStream 인코더를 사용하여 이진 개체 인코딩

WCF(Windows Communication Foundation)를 사용하여 원시 이진 데이터 보내기 및 받기는 .를 사용하여 ByteStreamMessageEncodingBindingElement구성됩니다.

바이트 스트림 메시지 인코더 아키텍처

WCF에서 사용하는 이진 메시지 인코더에는 메시지의 기본 이진 데이터를 처리, 유효성 검사 또는 식별하기 위한 기능이 없습니다. 데이터 패키지는 XML로 인코딩되고, 전송, 수신 및 디코딩됩니다. 인코더는 전송에 전달된 후 및 메시지가 메시지 큐로 전송되기 전에 데이터를 처리합니다. 기능적으로 바이너리 인코더는 메시지 데이터를 <binary> 요소로 래핑하여 보내고 메시지를 받은 후 해당 요소를 제거합니다.

바이트 스트림 메시지 인코더 사용

다음 예제에서는 바이트 스트림 메시지 인코더를 구현하는 서비스 계약을 보여 줍니다.

[OperationContract]  
Void Myfunction(Stream stream);  

다음 예제에서는 호출되는 서비스를 보여줍니다.

proxy.MyFunction(stream);  

메시지 인프라(예: 라우터)를 구현하는 서비스를 사용하는 경우 다음 예제와 같이 메시지를 검사, 유효성 검사 또는 상호 작용하지 않고 메시지가 처리됩니다.

[OperationContract]  
void ProcessMessage(Message message) ;  

시나리오

바이트 스트림 인코더는 다음 시나리오에서 유용합니다.

  • WCF를 사용하여 컴퓨터 간에 JPEG 이미지 전송 이 시나리오에서는 이미지가 외부 원본에서 전송을 통해 도착하고 전송된 데이터는 이미지를 구성하는 원시 바이트가 됩니다. 서비스는 이진 데이터를 수신하고 이미지를 표시합니다.

  • 메시지 큐에서 정보를 읽고 처리합니다. 메시지는 메시지 큐 관리자에서 읽은 후, 처리될 메시지 큐 채널을 통해 전달됩니다. 메시지 큐 채널은 WCF 채널 스택에서 큐 관리자 역할을 합니다.

메시지 큐 채널을 통해 메시지를 보내는 경우 발신자는 큐 관리자로부터 받은 바이트를 제어할 수 없습니다. 수신 프로세스에 원시 바이트를 읽을 수 있는 기능이 없으면 메시지가 잘못된 형식으로 수신되고 처리되지 않습니다. 수신 프로세스에는 수신된 바이트를 사용 가능한 형식으로 다시 변환하는 기능이 있다고 가정합니다.