Решение для «дискретных» обновлений в реальном времени

0

Я создаю приложение ASP.NET Core с угловым интерфейсом. Рассмотрим следующий сценарий. Клиент отправляет запрос. Основываясь на запросе, сервер генерирует сотни или тысячи математических моделей, которые он вычисляет на некоторой инфраструктуре (пример несколько гипотетический, так что несите меня). Результаты возвращаются на сервер в течение нескольких минут. Сервер возвращает какой-то ответ клиенту (в идеале, JSON).

Является ли SignalR решением для такого сценария? Я всегда думал, что SignalR предназначен для более непрерывной (в режиме реального времени) потоковой передачи; а не для дискретного сценария, который я описал. Есть ли другая библиотека, которая лучше подходит для этой задачи?

Теги:
asp.net-core-mvc
signalr

1 ответ

0
Лучший ответ

Я думаю, что SignalR идеально подходит для этого сценария. Сервер должен "сообщать" клиенту, когда данные готовы. Как бы Вы это сделали?

  1. Клиент запрашивает данные каждые несколько секунд, используя интервал. Это может быть хорошо, но скажем, что интервал длится 10 секунд. Если данные будут готовы на второй 11, вы не будете обновляться до второго номера 20. Вы можете сократить интервал времени по этому вопросу, получить больше вызовов сервера и сетевых отходов.
  2. Клиент поддерживает живое соединение с сервером, слушая любой сигнал/обновление. Сервер получает данные, а затем вызывает команду/метод в вашем клиенте. С помощью этого метода вы получаете больше преимуществ, таких как отчет о прогрессе для пользователя (в случае, если вы можете разделить создание модели на разных частях сервера), поскольку SignalR имеет очень простой способ сделать это

Ещё вопросы

Сообщество Overcoder
Наверх
Меню