10

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

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

4

1 回答 1

9

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

A)具有双 Http 绑定的双工服务

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

于 2013-04-11T20:38:22.920 回答