我有一个将托管在服务器和 WinForms 桌面应用程序上的 WCF 服务。我想在他们之间实现双向通信,并且只是在一些建议之后,这是最好的方法?
我已经做了一些查看,我看到很多提到的两种方法是使用 Web 套接字实现回调承包商。
我只是在就这些方法中的哪一种或是否有更好的方法获得一些建议和指导。
我在学校项目中使用了回调合同,它很好地达到了目的。如果实施得当,它可以在服务器和客户端之间传输任何类型的数据。回调的定义方式与合同相同。这很简单,我建议您在 Code Project 上查找一些示例,例如这个Callback example ,它以最少的代码进行了解释。此外,在大多数书籍中,回调用作服务器响应的示例。:)
您将此问题标记为 winforms,因此可能与它不太相关的 Web 套接字。
您可以使用回调(查找Duplex以获取模式详细信息)。
但是,如果您在双方都有复杂的功能,并且客户端上的防火墙不是问题 - 您可以创建 2 个 wcf“服务” - 一个将在客户端计算机上运行,另一个将在服务器上运行。这将使您更加灵活(对于诸如服务器重启、客户端重启等问题)