質問

WCFを使用してWebサービスを開発していますが、Javaで記述されたクライアントを使用してアクセスしたいです。プロトコルバッファーを使用してメッセージをエンコードします(Marc Gravellの protobuf-net で正確)。

これを実現することは可能ですか、またはクライアントも.NETで作成する必要がありますか?プロトコルバッファーでシリアル化されたデータはバイナリ相互運用可能であることは知っていますが、WCFがエンコードされたプロトコルメッセージの上にプラットフォーム固有のメタデータを追加するかどうかはわかりません。

WCFサービスがRESTfulであるか、SOAPベースであるか、その他の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はまっすぐ進むべきです。 WCF / Soapが過剰なものであることは別の問題です。iircprotobufには、単純なRPC用の独自のフレームワークが付属しています。

他のヒント

protobuf-netを使用したことはありませんが、相互運用がポイントでした。

  

プラットフォームに依存しない-異なるプログラミングアーキテクチャ間で移植可能

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top