0

WCFデュプレックスは、サーバーでメソッドが実行された後、クライアントでコードを実行した後にコールバックを実行します。

サーバー上のボタンを押すだけでサーバーからクライアント上でメソッドを実行したい場合、WCFデュプレックスは適切ではないと思います。

2つのアプリケーションの両端にクライアントとサーバーを作成しないのはなぜですか?

4

2 に答える 2

3

私はあなたの以前の質問にコメントした人の 1 人だったので、おそらくここで回答する義務があります :o)

あなたはかなり多くのコードを投稿しましたが、私はそれを詳しく見ていません。ただし、一般的に言えば、次のように、両側にサービスがあるピアツーピア アプローチではなく、一般に wsDualHttpBinding と二重契約を使用する理由があります

デュプレックス アプローチは、永続的に実行されている明確に定義されたサーバーがある場合に適しています。これは、相互作用のハブを提供します。クライアントは、ある意味でサーバーよりも一時的であるという考え方です。クライアントは起動およびシャットダウンしたり、場所を移動したりすることができ、サーバーはそれらを事前に認識する必要はありません。クライアントが起動すると、サーバーがどこにあるかを知るように事前に構成されているため、サーバーに自分自身を「登録」できます。

対照的に、クライアントがどこにあるかを知るためにサーバーを事前に構成する必要はありません。起動し、クライアントから独立して実行できます。オンラインになるたびに有効な資格情報を持つすべてのクライアントからの「登録」を受け入れるだけで、クライアントがオフラインになった後も実行を続けることができます。また、クライアントが移動した場合は、新しい場所でサーバーに再登録するだけです。

したがって、サーバーはある意味で、システムのより「重要な」部分です。クライアントはサーバーなしでは通信に参加できませんが、サーバーはクライアントから独立して動作できます。

WCF 二重サービスでこれを行うには、パブリッシュ/サブスクライブ動作を実装するために、自分で追加の作業を行う必要があります。幸いなことに、MSFT のパターンとプラクティス チームは、その方法についていくつかのガイダンスを提供しています。

http://msdn.microsoft.com/en-us/library/ms752254.aspx

これは、ネットワーク用に明確に定義されたハブ (サーバーなど) がなく、ネットワークの全体的な機能に影響を与えずに各ノードを行き来できる真のピアツーピア アプローチとは根本的に異なります。

于 2013-03-04T20:03:52.233 に答える
2

WCF Duplex は、パブリッシュ/サブスクライブ設定 (オブザーバー パターンとも呼ばれます) がある場合に使用されます。ある種の通知 (新着メールなど) を購読するサービスがあるとします。通常、更新を定期的に確認する必要があります。WCF Duplex を使用すると、サブスクライバーは、更新があるときにパブリッシャーから自動的に通知を受けることができます。

于 2013-03-04T20:02:05.837 に答える