繁体   English   中英

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

[英]How to use a duplex wcf service to distribute messages to all clients?

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

您是否有回调合同。 这样该服务器将回复给客户端。 查看以下实现回拨合同的教程,请单击此处

还要检查下面的项目事件通知服务器。 这个项目正在做您想要的类似事情。

CodeProject链接

随时问我是否需要进一步说明

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM