Spring Backend с Angular Frontend - как обновить представление при смене сервера - PullRequest
0 голосов
/ 31 декабря 2018

У меня пока нет большого кода, потому что я сначала хотел спросить вас о вашем мнении.Возможно, вы уже столкнулись с этой проблемой и нашли правильное решение.Поэтому я просто немного поискал в Интернете и нашел несколько предложений.Мой интерфейс написан на Angular 7, а Backend - на Spring.

Моя проблема выглядит следующим образом:

У меня есть карта, отображающая зарядные станции для электромобилей,Зарядные станции могут быть доступны в данный момент, тогда они будут показаны зеленым маркером на карте.В противном случае они недоступны и будут отображаться в виде красного маркера на карте.

Map with markers representing available (green) or unavailable (red) charging stations for eCars

Чего я хочу достичь

Представьте, что карта, показанная выше, является картой, отображаемой для пользователя A.Зарядная станция в левом нижнем углу в настоящее время доступна и отображается зеленым цветом.Когда пользователь-B резервирует зарядную станцию, я хочу обновить карту пользователя-A, чтобы зарядная станция на карте пользователя-A сменила в настоящее время доступно / зеленый на в настоящее время недоступно / красный .

Как выглядит мой код В настоящее время зарядные станции выбираются один раз из бэкэнда при первом доступе к карте.Это делается в файле зарядки-station.service.js посредством вызова REST нашего API-интерфейса с использованием углового httpClient.

enter image description here

То, что я уже пробовал

Я уже немного погуглил и наткнулся на два подхода.Первый (который мне не нравится) - активный опрос.Вы отправляете запрос каждый интервал времени серверу, выбирающему те же зарядные станции с потенциально новым статусом доступности.Что мне не нравится в этом подходе, так это то, что я добавляю много ненужной рабочей нагрузки на бэкэнд.

Второй подход, если он был найден, это использование веб-сокетов.Я никогда не работал с ними раньше.Поэтому я хотел спросить вас, что вы, как потенциально более опытные разработчики, подумали бы мне.Либо подход 1, 2, либо что-то совершенно другое.

1 Ответ

0 голосов
/ 01 января 2019

Long Pooling не может быть эффективным решением вашей проблемы, вы должны проверить SSE.Я полагаю, ваши сообщения будут передаваться только с сервера на клиент.Веб-сокеты более полезны, когда ваши сообщения передаются с обеих сторон.И никогда не забывайте, что WebSocket поставляется с большим количеством багажа.Так что, если вы решите пойти с этим, будьте готовы нести это.

...