C# 将下载完成通知发送到web
在我的设置中,用户从asp.net Core页面向asp.net Core api应用程序发送请求,以生成大型.xsl文件。 web api与数据库通信并生成文件。 下载完成后如何通知用户并向用户发送下载url?C# 将下载完成通知发送到web,c#,asp.net-core,C#,Asp.net Core,在我的设置中,用户从asp.net Core页面向asp.net Core api应用程序发送请求,以生成大型.xsl文件。 web api与数据库通信并生成文件。 下载完成后如何通知用户并向用户发送下载url? 我应该使用哪种技术呢?我建议您看看 阅读文档,你就会有一个清晰的想法。 它符合你的要求 编辑: SignalR是一个简化向应用程序添加实时web功能的库。 要使用SignalR,您需要配置服务器端部分和客户端部分。 每个部分都可以向另一方发送“消息” SignalR使用集线器在客户端和
我应该使用哪种技术呢?我建议您看看 阅读文档,你就会有一个清晰的想法。 它符合你的要求 编辑: SignalR是一个简化向应用程序添加实时web功能的库。 要使用SignalR,您需要配置服务器端部分和客户端部分。 每个部分都可以向另一方发送“消息” SignalR使用集线器在客户端和服务器之间进行通信 集线器是一种高级管道,它允许客户机和服务器相互调用方法 您可以将多个客户端连接到同一个集线器,并同时接收相同的通知 因此,您可以将消息“download done”发送到包含下载url的客户端 示例的来源是 以下是hub的一个示例:
using Microsoft.AspNetCore.SignalR;
using System.Threading.Tasks;
namespace SignalRChat.Hubs
{
public class ChatHub : Hub
{
public async Task SendMessage(string user, string message)
{
await Clients.All.SendAsync("downloadComplete", user, message);
}
}
}
您的Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddSignalR();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseEndpoints(endpoints =>
{
// ...
endpoints.MapHub<ChatHub>("/chatHub");
});
}
这不是答案。而信号员是OP应该调查的,告诉他们这不符合答案。你要么需要提供一个例子,要么将其作为评论发布。你的问题太广泛了。通常,您希望使用web套接字(SignalR)来启用服务器到客户端的连接(而不是HTTP只允许客户端启动的连接)。做一些研究,尝试一个解决方案,如果你遇到任何问题,那么,你可以问一个具体的问题。
var connection = new signalR.HubConnectionBuilder().withUrl("/chatHub").build();
connection.on("downloadComplete", function (user, message) {
// do something
});