我正在建立一个简单的双工wcf服务。在此服务中,客户端向服务器发送消息,服务器将消息分发给所有连接的客户端。然而,尽管我将ServiceBehavior属性定义为ServiceBehavior(InstanceContextMode = InstanceContextMode.Single),但只有发送消息的客户端才能从服务器接收回消息,而其他客户端则不能。我验证了只有一个服务器实例在运行。我做错什么了?我在网上看了其他类似的问题,他们都说我应该定义InstanceContextMode = InstanceContextMode.Single,我已经这么做了。
发布于 2015-06-08 12:12:34
你有回调合同吗。这样服务器就会回复给客户端。有关实现回调合同Click here的信息,请查看以下教程
另请检查下面的项目事件通知服务器。这个项目正在做你想做的类似的事情。
CodeProject Link
如果你需要更多的澄清,请随时问我
您需要维护代码片段中所示的clistList。
List<IMessageServiceCallback> clientList = new List<IMessageServiceCallback>();
public void Register()
{
IMessageServiceCallback callback = OperationContext.Current.GetCallbackChannel<IMessageServiceCallback>();
clientList.add(callback);
}当你想广播这条消息的时候。您可以遍历列表并调用回调函数向客户端发送消息。
https://stackoverflow.com/questions/30692530
复制相似问题