【发布时间】:2016-03-16 06:38:41
【问题描述】:
我需要一些关于如何在特定任务中使用 SignalR 的建议。
具体来说,我有一个遗留的 ASP.NET 应用程序,它通过重写现有模块或添加新功能作为具有基于 webapi 的后端的客户端模块 (html5/css/js) 来进行现代化改造。
我需要集成 SignalR 来完成如下任务:
- 网页上的js代码发出ajax请求。服务器上的代码可能需要很长时间,所以我不想等待 ajax 代码完成。 例如,发送一封电子邮件,其中附有几个呈现为 PDF 的 SSRS 报告。我不想强迫用户等到所有报告都呈现出来(这可能需要几十秒)。所以我的代码只是调用 ajax,但不使用处理程序来处理成功或错误
- 在 webapi 方法中,当成功完成后,我想向客户端发送 SignalR 消息,其中包含成功状态(可能还有一些附加信息)
- 如果 webapi 出现任何错误,我想向客户端发送 SignalR 消息,并提供错误信息
- 在母版页的 Web 应用程序中,我想包含 SignalR 代码,该代码将在页面加载时初始化,并将接收服务器代码发送的通知。 然后它将根据需要处理消息(报告错误、成功等)。
能否提供一些指导和代码参考?
谢谢
【问题讨论】:
-
您所描述的是 signalR 的标准用例。我建议您阅读本教程asp.net/signalr/overview/getting-started/…,您将了解如何在您的应用中使用 signalR。
-
我已经检查过了,但我没有找到如何将消息从服务器发送到客户端,例如如何从我的 webapi 方法访问和调用 signalR 代码以将数据发送到客户端。以及如何在应用程序启动时注册 signalR。我的应用程序是旧版应用程序,带有 global.asax AppStart,我不明白这如何适合 owin 启动初始化
标签: javascript asp.net ajax asp.net-web-api signalr