Моя команда и я разрабатываем веб-приложение с использованием Angular 7, которое обрабатывает очень динамические данные, состоящие из графиков и аналогичных данных.Приложение отображает данные в режиме реального времени на карте, используя Cesiumjs и (своего рода) таблицу, что позволяет пользователям выполнять различные операции над объектами.
В настоящее время приложение опрашивает один сервер, написанный наJava для нескольких типов сущностей через разные HTTP-запросы для каждого типа каждые 500 миллисекунд и получает все состояние приложения (наиболее обновленное состояние графиков, дорожек и т. Д.) В виде json.Затем приложение распространяет его через приложение с помощью Ngrx Store.
Существует также служба nodejs, которая обрабатывает действия пользователя и проблемы, связанные с аутентификацией.
Служба Java основана на некотором устаревшем коде, сложна и велика и полна ошибок, поэтому командарешили, что мы хотим полностью провести рефакторинг серверной части приложения.Его текущее задание:
- Служить прослушивателем внешней сети Pub-Sub, которая публикует данные, относящиеся к приложению.
- Объединяет данные и сохраняет их в контейнерах классовтаким образом, который подходит клиенту
- Служить HTTP-сервером для запроса клиента.
Мои вопросы следующие:
- Согласнопоследнее слово в технологиях на стороне сервера, что было бы хорошим способом для разработки и реализации серверной части для приложения реального времени, как я только что описал?Ограничение состоит в том, что по крайней мере какая-то часть должна быть в Java из-за внешней сети Pub-sub.
- Каков наилучший способ получения и обработки данных в приложении Angular, которое работает с хранилищем Ngrx?Должны ли мы извлекать все состояние каждого HTTP-запроса и «заменять» все состояние данных каждый цикл, или мы должны перейти только к получению соответствующих обновлений и обработке их по-другому на клиенте?Может быть, есть третий и лучший способ решения этой проблемы?
Большое спасибо!