2012-02-29 13 views
3

私たちが取り組んでいる新しいプロジェクトにWCFを使用するかどうかを研究しています。レガシーtcp IPサーバーとWCFアプリケーションの間の通信

私たちの使用を妨げる唯一の理由は、新しいプロジェクトが.NetのTcpClientクラスをバイナリメッセージで伝えるレガシーサーバと通信できることです。

私はおそらくサーバーからメッセージを送受信するためにカスタムバインディングを書くことができるのだろうかと思います。私はカスタムバインディングとエンコーディングを書くことができます。しかし、もし私がバイトとしてメッセージを読むことができ、ソープメッセージではないかどうかはわかりません。

考えられる可能性のある解決策の1つは、バイトをSOAPメッセージに変換するカスタムエンコードを作成することです。逆もまた同様です。しかし、私はこれをチェックしたり、それ以上のことを考えなかった。あなたではなく、完全なソケットまたは完全なWCF溶液のいずれかで行く

+0

制約はちょうど、クライアントがれるtcpClientクラス(ところで、WCFは、SOAPに拘束されていない)に制限されているクライアントがすでに書かれていると、あなたは、互換性のあるサーバーのいくつかの並べ替えが必要かありますか? –

+0

@SimonMourierクライアントはTcpClientクラスに限定されており、サーバーはWCF – Jason

+0

に制限されていますが、クライアントとサーバーの間のプロトコル/インターフェイスは既に存在していますか、または作成中ですか? –

答えて

2

ジェイソン、
(これが答えですかどうかわからないが、私はコメントを投稿することはできません、申し訳ありません)私がお勧めしたい、
(両方のクライアントを意味しますとサーバー)。
viaソケットを使用した従来のサーバーがある場合、カスタムプロトコルを使用してソケットクライアントを作成し、解析、基本的なエラー処理などを行う方がずっと簡単です。
... (目的やアプリの性質、サーバーとのコミュニケーションが何であるか、他のWCF機能などが必要かどうかはわかりません)。あなたが必要があると思い、すべてをサポートするために、再びかなりのだろう - 基本的に、あなたはトランスポート・チャネルを記述する必要があると思います... ...
WCF TCP client with Java Socket server on custom XML messages

を多かれ少なかれあなたのケースで、このスレッドを参照してください。それは 'ソケットのみの'クライアント+余分な作業とレイヤーのために行うことです。
これは通常、あなたが
の場合にのみ意味があります。それは後で開発するために再利用するためです。別のサーバー用にそのソリューションをプラグインするだけで、多数の開発者や大きなコードベースなどがある場合(ソケットソリューションを別のlibにして再利用するのがさらに簡単な場合)または
b)とにかくそれをかなり徹底的に包んでいなければならないものをまだサポートするために、手でもソケットでも簡単に再現できない特定の機能が必要です...
c)サードパーティのlib
これはいくつか役に立ったと思っています

+0

これは、あまりにも、生のソケットを使用できない必要があります。はい、プラグインとして使用されます。他のサーバーで。だから私はカスタム輸送を書く必要があるようです。ありがとうございます。 – Jason

+0

すべてのソケット通信が(簡単に)WCF化されているわけではなく、サーバープロトコルモデルによって異なります。 「より多くの」のように聞こえるかもしれませんが(「プロキシ」(サーバーへのプロキシトーク、WCFを他人に公開する)ことを検討することもできますが、よりクリーンなソリューションになる可能性があります。 – NSGaga

0

Carlos Figueiraの一連のWCF拡張機能の記事を見ても分かりませんが、確かにわかりません。あなたが可能なこととそれをやり遂げる方法を理解したいと思えば、読んだだけの価値があります。

http://blogs.msdn.com/b/carlosfigueira/archive/2011/03/14/wcf-extensibility.aspx

あなたはあなたのケースで結合新しいトランスポートのための基礎を使用することができるかもしれJSON-RPCのバインドベースのカスタムTCPの例があります。

http://blogs.msdn.com/b/carlosfigueira/archive/2011/12/08/wcf-extensibility-transport-channels-request-channels-part-1.aspx

+0

ありがとう、ニースの記事 – Jason

関連する問題