【问题标题】:Two-way Communication Using WCF使用 WCF 进行双向通信
【发布时间】:2013-04-11 20:35:58
【问题描述】:

我正在设计一个使用 Windows Communication Foundation 实现的客户端-服务器架构。在其中一种用例中,服务器需要请求客户端的状态,这意味着它需要调用客户端上的SendStatus()方法,并且询问其状态。我只是想知道这个用例是否可以使用 WCF 实现,而无需在客户端创建独立服务。我试图避免使用套接字,因为客户端是后台服务,并且基本上始终连接到服务器。我知道 WCF 最终使用套接字进行通信,但我特别尝试使用 WCF,因为这更像是概念证明。

我想到的一个解决方法是,客户端可以在服务器上调用SendClientStatus() 方法,并每隔5 秒左右发送一次其状态。但是话又说回来,这似乎不是一个好方法。任何帮助将不胜感激。

【问题讨论】:

标签: c# wcf


【解决方案1】:

在 WCF 的世界中,您或多或少有两种选择。

A)A Duplex service with Dual Http Binding

B)无返回值轮询方案 - 这基本上就是您所描述的。正如您正确指出的那样,幼稚的实现并不是那么好,但是有一些优化。由于您不需要从 SendClientStatus 返回的任何内容(对吗?),您可以通过仅在有更新时发送更新来优化通信 - 例如只要客户端的状态保持不变,就不会向服务器发送任何内容。根据客户端状态更改的频率,这可以大大减少流量。双工服务提供了一些您希望避免的额外配置,除非您确实需要它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    相关资源
    最近更新 更多