如何使用双工wcf服务将消息分发给所有客户端?

时间:2015-06-07 10:36:16

标签: c# wcf duplex

我正在构建一个简单的双工wcf服务。在此服务中,客户端将消息发送到服务器,服务器将消息分发给所有连接的客户端。但是,尽管我将ServiceBehavior属性定义为 [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)],只有发送消息的客户端从服务器接收回来,而其他客户端则没有。我确认只有一个服务器实例正在运行。 我做错了什么?我在网上看了其他类似的问题,他们都说我应该定义InstanceContextMode = InstanceContextMode.Single,我已经这样了。

1 个答案:

答案 0 :(得分:1)

你有回调合约吗?这样服务器就会回复客户端。 请查看以下有关实施回调合同的教程 Click here

同时检查以下Project Event Notification服务器。这个项目正在做你想要的类似事情。

CodeProject Link

如果您需要更多说明,请随时问我

您需要维护clistList,如代码段所示。

List<IMessageServiceCallback> clientList = new List<IMessageServiceCallback>();
public void Register()
{ 
    IMessageServiceCallback callback = OperationContext.Current.GetCallbackChannel<IMessageServiceCallback>(); 
    clientList.add(callback);
}

当您想要广播此消息时。您可以遍历列表并调用回调函数以向客户端发送消息。