我的项目中有以下场景:-
客户端使用 ASP.NET Web API 发出 HTTP 服务请求。 Web API 位于几个 WCF 服务之上,这些服务反过来处理所有业务逻辑。客户端使用 Web API 订阅特定类型的事件。每当 Web API 从内部 WCF 服务收到有关事件发生的通知时,Web API 又需要通知(将事件推送到)所有订阅的客户端有关事件及其详细信息。
我想了解可用于的不同选项 将异步回调从 ASP.NET Web API 发送到 客户。(目前我们正在开发一个原型(prototype) 客户端是一个 C# Windows 窗体应用程序。以后我们可能会选择 ASP.NET MVC4 网络应用程序。)。
我还想知道哪个选项最适合异步发送 当通知附带的数据很大时,将通知返回给客户端。在我们的场景中,从服务发回的通知数据可能很大(大约在 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/