2012-01-10 19 views
3

タイトルがついていますか?WCFでブロードキャストすることは可能ですか?

私のコンセプトは、デュプレックスチャネルでWCFを使用しているため、各クライアントアプリケーションはWCFにLogin()となり、WCFはコールバックチャネル参照をリストに格納します(GetCallbackChannel)。

ブロードキャストするときは、単にコールバックチャネルリストを反復処理します。

しかし、コールバックチャネル参照を保存して、別のサービスコンテキストで共有してからブロードキャストすることは可能ですか?

私はソケットで行うことができます(私はどのように笑)を知っているが、私は本当に知ってほしいWCFとすることができますか?

答えて

3

はい。 OperationContext.Current.GetChannelCallbacks()で取得したコールバックを使用する場合は、基本的にパブリッシュ/サブスクライブの状況を設定できます。 InstanceContext = PerSessionsに関する懸念事項として、コールバック・リストがインスタンス外に存在する必要があるように、セッションごとに異なるサービス・インスタンスを持つことに気付く必要があります。それを静的またはシングルトンにすることができます。また、スレッドセーフの問題もあります。

これは、パブリッシュ・サブスクライブカバー良い記事です:http://msdn.microsoft.com/en-us/magazine/cc163537.aspx#S6

1

確実に、コールバックチャネルのリストを反復してブロードキャストを実装することは可能です。 が「コールバックチャネル参照を保存し、別のサービスコンテキストで共有してからブロードキャストする」という意味がわかりません。

+0

クライアントがWCFへの呼び出しを行うと、WCFは、チャンネルが操作コンテキストからクライアントへのコールバックするために取得することができます(私は場所のようなことを考えています返信するメッセージ)。だから私はどこかにその参照を格納し、その後、他のスレッドでコールバックに使用すると思った。 –

+0

Woops申し訳ありませんが、私はInstanctContext = PerSessionを設定すると、WCFへの各クライアント呼び出しは独自のInstantContextを持ちますので、そのリストがすべてのクライアントと共有できるかどうかです。 –

関連する問題