用于进程间通信的 WCF 双工通道
WCF duplex channel for inter-process communication
我有这样的系统:
Windows 服务(WCF,data/events)<-> Web 应用程序 <-> Web 客户端
我需要同时响应客户的请求。我也有一些来自客户服务的事件。所以双工通道是要走的路。但是我需要高吞吐量,因为客户端同时调用。
Request/reply接近
为了不序列化通道请求,我需要更多的并行调用通道,对吗?但是如何处理回调通道呢?何保持它仍然打开以接收事件,即使在通道错误时也是如此?
单向方法
On channel 应该足够了(不用等待数据准备),但是如何link数据发送到原始请求回调,以便能够为客户端编写响应?
要走的路是什么?谢谢。
在简单的情况下,当 Web 客户端向 Web 应用程序发送请求,并且 Web 应用程序(可能)向 WCF 服务发送请求时,根本不需要双工绑定。
至于由要在 Web 客户端中触发的服务引发的事件,我建议使用 message broker which supports WebSockets - for example RabbitMQ. It has a plugin compatible with WebSockets and WCF binding。
综合起来,可以创建一个 RabbitMQ 服务器,它接受来自 WCF 服务的消息并将其发送到 Web 客户端,该客户端订阅来自 Javascript 的事件提要。
我有这样的系统:
Windows 服务(WCF,data/events)<-> Web 应用程序 <-> Web 客户端
我需要同时响应客户的请求。我也有一些来自客户服务的事件。所以双工通道是要走的路。但是我需要高吞吐量,因为客户端同时调用。
Request/reply接近
为了不序列化通道请求,我需要更多的并行调用通道,对吗?但是如何处理回调通道呢?何保持它仍然打开以接收事件,即使在通道错误时也是如此?
单向方法
On channel 应该足够了(不用等待数据准备),但是如何link数据发送到原始请求回调,以便能够为客户端编写响应?
要走的路是什么?谢谢。
在简单的情况下,当 Web 客户端向 Web 应用程序发送请求,并且 Web 应用程序(可能)向 WCF 服务发送请求时,根本不需要双工绑定。
至于由要在 Web 客户端中触发的服务引发的事件,我建议使用 message broker which supports WebSockets - for example RabbitMQ. It has a plugin compatible with WebSockets and WCF binding。
综合起来,可以创建一个 RabbitMQ 服务器,它接受来自 WCF 服务的消息并将其发送到 Web 客户端,该客户端订阅来自 Javascript 的事件提要。