0

MSMQ ベースの WCF PubSub を実装しようとしています。net.msmq が一方向であることは理解しています。ただし、基になるキューから読み取るための net.msmq エンドポイントと、リスナーがコールバックでサブスクライブするための net.tcp エンドポイントを実装するために単一のサービス オブジェクトを使用すると、一方向 vs.双方向、DuplexChannelFactory、DuplexClientBase など。

これを実装する唯一の方法は、net.msmq キュー読み取りサービスを net.tcp パブリッシャー サービスのクライアントにし、メッセージをパブリッシュするのではなく、新しいメッセージがキューから読み取られたときにパブリッシャーに通知することです。内部のサブスクライバーに。または、レシーバーで net.msmq を使用せず、代わりに単純な古い MessageQueue オブジェクトを使用するようにします。

4

1 に答える 1

0

いくつかのインターフェースをリファクタリングし、サブスクライバーとコールバックの実装者の間のいくつかの欠落した属性と厄介な関係を見つけた後、意図したキューに基づく pubsub パターンを確立しました。はい、可能です。以前の問題は私の側の設計ミスでした。

編集/脚注: 何らかの理由で、以前に net.msmq レシーバーに MsmqMessage として渡されたメッセージが nullreferenceexceptions をスローするようになりました。ただし、署名を MyObject に変更すると機能しますが、最初は機能しませんでした

于 2011-03-02T19:01:08.423 に答える