Как обновить angular View в зависимости от изменений в коде c #

#c# #angular

#c# #angular

Вопрос:

Я разработал приложение Angular, которое использует ASP.NET WebAPI. Я использую SQL Server Service Broker для получения уведомлений об изменениях в базе данных, изменения вносятся внешним приложением.

 using (var otherNotifier = new EntityChangeNotifier<Product, StoreDbContext>(x => x.Name == "Desk"))
{
    otherNotifier.Changed  = (sender, e) =>
    {
        Console.WriteLine(e.Results.Count());
    };

    Console.WriteLine("Press any key to stop listening for changes...");
    Console.ReadKey(true);
}
  

Внешний API изменяет записи в базе данных, и я получаю правильное уведомление.
Мне интересно, возможно ли каким-либо образом обновить angular view при обнаружении изменений.

Комментарии:

1. Вы можете добиться этого с помощью push-уведомления. Для . NET applications, SignalR — лучший фреймворк, но вы также можете достичь этого в web API, просто посмотрите на эту ссылку или загляните в SignalR

2. Меня интересует максимально простой способ.

3. Для самого простого способа вам нужно создать запрос get в API и регулярно вызывать его из приложения angular для проверки обновлений

4. Вам нужен пример для этого?

5. Мне нужен самый простой, но повторный вызов API приведет к большому количеству нежелательного сетевого трафика. Какой из других вариантов самый простой? Достаточно ли push-уведомлений?

Ответ №1:

Для вашего сценария push-уведомление через SignalR — лучший способ. Существует несколько решений вашей проблемы. Я привел вам пример события отправки сервером. Различия между SSE и веб-сокетами в обеих технологиях не так уж велики, и обе являются хорошим выбором. Безусловно, самое большое различие между обеими технологиями заключается в том, что WebSockets представляют собой полнодуплексную двунаправленную связь между клиентом и сервером, тогда как SSE являются однонаправленными.

Вы можете прочитать полную статью здесь