如何使用双工wcf服务将消息分发到所有客户机

本文关键字:客户机 消息 何使用 wcf 服务 | 更新日期: 2023-09-27 17:54:22

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

如何使用双工wcf服务将消息分发到所有客户机

你有回调契约吗?这样服务器就会回复客户端。查看下面的教程实现回调契约点击这里

也检查下面的项目事件通知服务器。这个项目正在做你想做的事情。

CodeProject上联系

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

您需要像代码片段中所示的那样维护listlist。

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

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