标题是,有可能吗?
我的概念是使用带有双工通道的WCF,每个客户端应用程序将Login()
放入WCF,WCF将把回调通道引用存储在列表中(来自GetCallbackChannel
)。
然后在广播时,它只是遍历回调频道列表。
但是......是否可以存储回叫频道参考并在不同的服务上下文中共享然后广播呢?
我知道可以用套接字完成(我不知道怎么用lol),但我真的想知道是否可以用WCF做什么?
答案 0 :(得分:3)
是。如果您想使用通过OperationContext.Current.GetChannelCallbacks()获得的回调,基本上可以设置发布/订阅情况。至于InstanceContext = PerSessions问题,您需要意识到每个会话都有一个不同的服务实例,因此您的回调列表必须存在于实例之外。你可以让它静态或单身。您还需要考虑线程安全问题。
这是一篇很好的文章,涵盖了发布 - 订阅:http://msdn.microsoft.com/en-us/magazine/cc163537.aspx#S6
答案 1 :(得分:1)
通过遍历回调通道列表来实现广播当然是可能的。我不确定你的意思"存储一个回叫频道参考并在不同的服务环境中共享然后广播它" 。