从Web API向.NET客户端发送异步回调的最佳选择

时间:2014-01-04 13:45:44

标签: asp.net asp.net-web-api signalr

我的项目中有以下场景: -

客户端使用ASP.NET Web API发出HTTP服务请求。 Web API位于几个WCF服务之上,后者又处理所有业务逻辑。客户端使用Web API订阅特定类型的事件。每当Web API从内部WCF服务接收有关事件发生的通知时,Web API就需要通知(推送事件)所有订阅的客户端有关事件及其详细信息。

  1. 我想了解可用的不同选项 从ASP.NET Web API发送异步回调到 客户。(目前我们正在研究一个原型 client是一个C#Windows Forms应用程序。稍后我们可能会选择 ASP.NET MVC4 Web应用程序。)。

  2. 我也想知道发送异步的哪个选项是理想的 当通知附带的数据大小时,通知回客户端。在我们的场景中,从服务发回的通知数据可能很大(~5KB到50 MB)。

  3. 在我上面描述的场景中,当Web API从内部WCF服务接收回调时,SignalR可用于从Web API通知c#客户端吗?

    注意: - Web API当前托管在Windows服务中,客户端是.NET Windows窗体应用程序。

    任何有关此类代码示例的指示或有关如何实现此目的的指示都将非常有用。

    干杯

1 个答案:

答案 0 :(得分:2)

SignalR非常适合您所描述的场景,因此我建议将其用于通知(特别是因为您希望从WinForms应用程序开始,然后切换到浏览器客户端 - 使用SignalR,您将会能够连接到相同的服务器端代码)。

但是,我还建议保持通知消息的轻量级,因此我不会将数据发送到客户端,而是发送令牌,客户端可以从WebAPI检索数据(SignalR不是很理想用于大型文件传输。)