Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将下载完成通知发送到web_C#_Asp.net Core - Fatal编程技术网

C# 将下载完成通知发送到web

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使用集线器在客户端和

在我的设置中,用户从asp.net Core页面向asp.net Core api应用程序发送请求,以生成大型.xsl文件。 web api与数据库通信并生成文件。 下载完成后如何通知用户并向用户发送下载url?
我应该使用哪种技术呢?

我建议您看看

阅读文档,你就会有一个清晰的想法。 它符合你的要求

编辑

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
});