wcf http binding vs dualhttp binding



我正在尝试用wcf构建一个http侦听器(webservice)。此侦听器是更大的桌面应用程序的一部分。此桌面应用程序还会调用 http 侦听器。

当侦听器收到数据时,应将其传递给桌面应用程序。我尝试构建一个httpbinding服务并使用回调机制

[OperationContract(IsOneWay = true)]
void OnDataReceived(Data data);

问题是由于回调,我需要wsDualhttpbinding。

我是否真的需要使用 dualhttp 将数据从一个 .NET 应用程序发送到另一个 .NET 应用程序,或者我错过了什么?

谢谢

是的,您需要双工或双工通信。HTTP 本质上是一个单向协议。客户端必须调用服务器。服务器无法与客户端通信。

您的问题是您有一个作为 WCF 服务公开的事件源。服务实时向其客户端发送事件的唯一方法是通过全双工连接,这意味着使用 duathttp 或 dualtcp 绑定。

但是,使用双工绑定充其量是复杂的。允许客户端订阅服务,然后在发生客户端感兴趣的事件时接收消息会更简单。

这比双工绑定简单得多,因为客户端和服务之间没有实际连接,只有异步消息。

虽然 WCF 为 msmq 传输提供了绑定,但它不提供具有这种发布-订阅支持的绑定,因此您可以为此编写代码,也可以使用开源消息传递总线(如 NServiceBus)。

如果您使用的是回调机制,而不是轮询机制,那么是的,您需要双重绑定,因为 WCF 服务需要能够发送和接收消息(而不是接收和返回响应)

最新更新