可以用WCF广播吗?

可以用WCF广播吗?,wcf,Wcf,如标题所示,可能吗 我的概念是将WCF与双工通道一起使用,每个客户端应用程序将Login()插入WCF,WCF将在列表中存储回拨通道引用(从GetCallbackChannel) 然后,当广播时,它只是在回调通道列表中迭代 但是。。。是否可以存储回拨通道引用并在不同的服务上下文中共享,然后广播它 我知道可以用socket实现(我不知道如何lol),但我真的想知道是否可以用WCF实现?当然可以通过迭代回调通道列表来实现广播。我不知道你所说的“存储回拨频道引用并在不同的服务上下文中共享,然后广播它”

如标题所示,可能吗

我的概念是将WCF与双工通道一起使用,每个客户端应用程序将
Login()
插入WCF,WCF将在列表中存储回拨通道引用(从
GetCallbackChannel

然后,当广播时,它只是在回调通道列表中迭代

但是。。。是否可以存储回拨通道引用并在不同的服务上下文中共享,然后广播它


我知道可以用socket实现(我不知道如何lol),但我真的想知道是否可以用WCF实现?

当然可以通过迭代回调通道列表来实现广播。我不知道你所说的“存储回拨频道引用并在不同的服务上下文中共享,然后广播它”是什么意思。

是的。如果希望使用通过OperationContext.Current.GetChannelCallbacks()获得的回调,基本上可以设置发布/订阅情况。至于InstanceContext=PerSessions,您需要意识到每个会话都有一个不同的服务实例,因此回调列表必须存在于实例之外。您可以将其设置为静态或单态。此外,您还需要考虑线程安全问题。


这是一篇很好的文章,涵盖了publish-subscribe:

当客户端调用WCF时,WCF可以获得从操作上下文回调到客户端的通道(我认为这就像是要发送回消息的位置)。所以我想我把引用存储在某个地方,然后用它在其他线程中调用。Woops抱歉,遗漏了几个单词lol如果我设置InstanceContext=PerSession,那么每个调用WCF的客户端都会有自己的InstantContext,那么我的意思是,如果该列表能够与所有客户端共享?