#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 являются однонаправленными.
Вы можете прочитать полную статью здесь