我有一台服务器需要保持少量客户端同步。只要服务器上的状态发生变化,就必须通知所有连接的客户端。
到目前为止一直很好:
是否有标准的WCF组件来执行此操作?
答案 0 :(得分:2)
不,至少通过.NET 3.5,没有标准 WCF组件。我无法谈论.NET 4.0中可用的内容。
也就是说,有一种非常简单的方法可以做到这一点。 Programming WCF Services的作者Juval Lowy使用基于WCF的Publish-Subscribe Framework描述了如何做到这一点。
基本上,我们的想法是创建一个单独的WCF事件服务,该服务与服务器(例如,Windows服务,IIS)位于同一主机应用程序中。当服务器状态发生变化时,您将状态更改发布到事件服务。需要通过事件服务同步订阅到同一事件的客户端。实际上,事件服务成为服务器的代理,以通知客户端服务器发布的任何事件。
我上面列出的文章有一个代码下载,但你也可以从他的网站IDesign.net免费获得Publish-Subscribe Framework和一个工作示例。这是download的链接。您可能需要稍微向上滚动浏览器以查看它,因为我认为它们的内部超链接是错误的。