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

标签 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 发送到 客户。(目前我们正在开发一个原型(prototype) 客户端是一个 C# Windows 窗体应用程序。以后我们可能会选择 ASP.NET MVC4 网络应用程序。)。

  2. 我还想知道哪个选项最适合异步发送 当通知附带的数据很大时,将通知返回给客户端。在我们的场景中,从服务发回的通知数据可能很大(大约在 5KB - 50 MB 范围内)。

在我上面描述的场景中,当 Web API 收到来自内部 WCF 服务的回调时,SignalR 是否可以用于从 Web API 通知 c# 客户端?

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

任何指向此类代码示例的指针或有关如何实现此目的的说明都将非常有帮助。

干杯

最佳答案

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

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

关于asp.net - 从 Web API 向 .NET 客户端发送异步回调的最佳选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20921786/

相关文章:

asp.net - 与标准 MVC3 View 语法相比,XSL 有哪些优势?

c# - ASP.NET 成员身份激活用户 - 用户 ID 作为查询字符串

javascript - 无法发布复杂对象

asp.net-mvc - 捕获路由错误

c# - 获取信号器中的所有组名

javascript - SignalR 从集线器客户端方法更新 knockout 模型的更好方法

jquery - 没有 jQuery 的 signalR 客户端?

c# - 如何向当前服务器请求资源(相对路径)?

docker - Dockerize asnet核心webapi

c# - 删除方法不起作用