特定事件发生时通知所有客户。在哪里订阅活动?

时间:2016-10-03 18:24:10

标签: c# wcf

我搜索了两个关于如何在特定事件发生时通知所有客户的示例,并且我混淆了哪些应该使用:

示例1 - http://www.nullskull.com/a/1360/notify-client-applications-using-wcf-callbacks.aspx 示例2 - http://www.anujvarma.com/wcf-publish-subscribe-a-full-example-the-service-side-part-2-implementation/

在第一个示例事件中,eventargs等位于客户端,第二个位于服务端。我应该在哪里举办活动?

我想要实现的目标简介:使用本地网络的简单纸牌游戏项目。我希望当其中一个客户端抛出一张卡片(放在桌子上并结束轮到他们)并更新他们的接口时通知所有客户端,这样每个客户端都可以看到抛出的卡片。

1 个答案:

答案 0 :(得分:1)

如果您要使用WCF,则需要使用duplex WCF service(广播服务)实施广播事件。第一个链接确实提到了这一点。

我认为您所指的事件是服务和客户端上发生的操作:

  

要创建双工合约,请创建一对接口。首先   是描述操作的服务合同界面   客户可以调用。该服务合同必须指定回调   ServiceContractAttribute.CallbackContract属性中的契约。   回调契约是定义操作的接口   该服务可以调用客户端端点。

您可能还想考虑使用ASP.NET SignalR

  

SignalR允许服务器和客户端之间的双向通信。   服务器现在可以立即将内容推送到连接的客户端   变得可用