用于WCF回调的事件调度程序

时间:2009-11-23 14:45:11

标签: wcf callback

我有一台服务器需要保持少量客户端同步。只要服务器上的状态发生变化,就必须通知所有连接的客户端。

  • 我打算使用“回调” 合同“,
  • 我能抓住这个 每个客户端的回调参考 服务器使用 GetCallbackChanel()。
  • 然后我需要 管理所有这些客户端渠道 引用并在调用时调用所有这些 需要的。

到目前为止一直很好:

  • 我不想阻止服务器,因此对客户端的调用必须是无阻塞
  • 必须记录调用客户端的错误并应对

是否有标准的WCF组件来执行此操作?

1 个答案:

答案 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的链接。您可能需要稍微向上滚动浏览器以查看它,因为我认为它们的内部超链接是错误的。