Отправить сообщение о завершении загрузки в Интернет - PullRequest
0 голосов
/ 29 октября 2019

В моей настройке пользователь отправляет запрос с базовой страницы asp.net на основное приложение api asp.net для создания большого файла .xsl. Веб-интерфейс взаимодействует с базой данных и генерирует файлы. Как я могу уведомить пользователя о завершении загрузки и отправить пользователю URL-адрес для загрузки? Какую технологию мне использовать для этого?

1 Ответ

0 голосов
/ 29 октября 2019

Я предлагаю вам взглянуть на Сигнал R

Прочтите документацию, и тогда у вас будет четкое представление. Он соответствует вашим требованиям.

EDIT :

SignalR - это библиотека, которая упрощает добавление веб-функций в реальном времени в приложения. Чтобы использовать SignalR, вам необходимо настроить серверную часть и клиентскую часть. Каждая часть может отправлять «сообщения» на другую сторону.

SignalR использует концентраторы для связи между клиентами и серверами.

Концентратор - это высокоуровневый конвейер, который позволяет клиенту и серверу вызыватьметоды друг на друга.

Вы можете подключить множество клиентов к одному и тому же концентратору и получать одно и то же уведомление одновременно.

Таким образом, вы можете отправить сообщение "загрузка завершена" клиенту, который также содержит URL-адрес загрузки.

Источник примера здесь .

Вот пример концентратора:

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

вот пример в JS-клиенте, где вы создаете че соединение со стороной сервера SignalR через хаб. Здесь вы можете обрабатывать входящие сообщения:

var connection = new signalR.HubConnectionBuilder().withUrl("/chatHub").build();
connection.on("downloadComplete", function (user, message) {
    // do something
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...