WCF客户端 - 服务器同步:轮询与绑定

时间:2010-08-03 03:07:55

标签: .net wcf asynchronous synchronization

我正在使用WCF客户端 - 服务器应用程序。客户端必须经常与服务器同步(至少每10秒钟)。目前我正在轮询服务器以查看是否有任何变化。如果是这样,则将更改(有时是数十个db记录)下拉到客户端。

我的设计感觉有点笨重,所以我看看gtalk(和其他XMPP)客户端如何保持同步。根据此Wikipedia article,XMPP放弃了投票方法,现在仅使用HTTP 绑定

我认为可以为WCF做同样的事情。我认为今天99%的WCF应用程序只是1)打开连接,2)执行交易,3)关闭连接。

所以我的问题是:

  1. 有谁知道一个例子 如何实现这样一个 异步绑定方法 WCF?
  2. 有什么影响 关于服务器的客户端数量 可以容纳,因为多个 连接必须是 保持。
  3. 还有其他任何缺点吗?

1 个答案:

答案 0 :(得分:3)

  1. 这种异步方法可以通过双工绑定实现。 WCF提供WSDualHttpBinding,它由两个组合的http传输组成。一个从客户端到服务器,第二个从服务器到客户端。方法是在通信开始时从客户端调用服务器。服务器存储客户端回调通道,并在需要时使用它来推送更新。这可以进一步扩展到完整的发布订阅消息交换模式。

  2. 默认情况下,服务器必须为每个连接的客户端代理维护服务实例(对于每个会话)。您必须正确设置服务限制以允许连接许多客户端。对服务器和客户端数量的影响取决于服务实现。

  3. WSDualHttpBinding有局限性。例如 - 不允许传输安全性 - 只能使用消息安全性,不允许流式传输,需要可靠的会话等。实现中存在一些缺陷,例如超时时间较长或未处理的异常导致通道出现故障。