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

4

我正在开发一个WCF客户端-服务器应用程序。客户端必须与服务器保持同步(至少每10秒钟同步一次)。目前,我正在轮询服务器以查看是否有任何更改。如果有变化(有时是数十个数据库记录),则将其传送到客户端。

我的设计感觉有点笨重,因此我看了一下gtalk(和其他XMPP)客户端如何保持同步。根据这篇维基百科文章,XMPP放弃了轮询方法,现在只使用HTTP绑定。

我认为在WCF中也可以实现相同的方法。我认为99%的WCF应用程序今天只需 1)打开连接,2)进行事务,然后 3)关闭连接。

所以我的问题是:

  1. 是否有人知道如何使用WCF实现这种异步绑定方法的示例?
  2. 这对服务器可以容纳的客户端数量有什么影响,因为必须维护多个连接。
  3. 还有其他缺点吗?
1个回答

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接