문제

Java로 작성된 클라이언트를 사용하여 액세스하고 싶은 WCF를 사용하여 웹 서비스를 개발하고 있습니다. 프로토콜 버퍼를 사용하여 메시지를 인코딩합니다 (Marc Gravell의 protobuf-net 정확히는).

클라이언트가 .NET로 작성 될 수 있습니까? 프로토콜 버퍼로 직렬화 된 데이터는 이진 상호 작용이지만 WCF가 인코딩 된 프로토콜 메이지 위에 플랫폼 별 메타 데이터를 추가하는지 모르겠습니다.

WCF- 서비스가 편안하고 비누 기반 또는 다른 형태의 WCF 지원인지는 상관하지 않습니다. PB를 사용하여 실제 페이로드를 인코딩하기를 원합니다. 이것이 가능하고 그것이 있다면, 나는 간단한 예를 대단히 감사 할 것입니다.

도움이 되었습니까?

해결책

바이트 배열을 가져 오도록 WCF 서비스를 프로그래밍하는 경우 Protobuf 메시지와 같이 원하는 것을 넣을 수 있습니다.

  [ServiceContract]
    public interface IMessageService{
        [OperationContract(IsOneWay = true)]
        void SendMessage(byte[] msg);
    }

  [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
   public class MessageService: IMessageService{

        public void SendMessage(byte[] msg) {
          //decode the protobuf msg and deal with it.
        }

    }

WCF 엔드 포인트를 SOAP로 구성한 다음 Java의 말과 대화하는 것은 직선이어야합니다. WTHER WCF/SOAP는 또 다른 문제로 인해 과잉이 될 것입니다. IIRC Protobuf에는 간단한 RPC를위한 자체 프레임 워크가 제공됩니다.

다른 팁

나는 Protobuf-net을 사용한 적이 없지만 Interop은 요점이었습니다.

플랫폼 독립 - 다양한 프로그래밍 아키텍처 간의 휴대용

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top