Создание масштабируемых SPA с использованием веб-сокетов, насколько это сложно? - PullRequest
0 голосов
/ 28 сентября 2019

Я новичок в веб-технологиях.Изучая основы веб-интерфейса, я узнал, что мы запускаем отдельные серверы приложений для веб-интерфейса и внутреннего сервера (API).Например, если я использую vue.js, я буду запускать сервер vue для внешнего интерфейса и отдельно запускать другой сервер API стека MEAN.Теперь моему приложению нужно будет показывать обновления в режиме реального времени, мне нужно будет использовать соединение websocket между моим браузером и внешним сервером, которое в дальнейшем будет нуждаться в соединении websocket / webhook с моим внутренним сервером (API).Теперь я уже знаю о проблемах масштабируемости и управления сессиями при подключении к веб-сокету.В этом сценарии, как мне создать свое приложение для лучшей масштабируемости и меньшей сложности?Можно ли создать монолитный сервер приложений для внешнего интерфейса и внутреннего интерфейса?Это будет хороший выбор?

Ответы [ 2 ]

0 голосов
/ 28 сентября 2019

Можно ли создать монолитный сервер приложений для внешнего и внутреннего интерфейсов?Это будет хороший выбор?

Этот выбор хорош;начните с простого, и в будущем вы сможете взломать микросервисы.Если это не для большой производственной системы!

Если вы используете что-то вроде экспресса, вы можете обслуживать файлы Vue.js с использованием express.static, конечные точки API с использованием экземпляров express.Router() и ws или socket.io модуль прикреплен к экспресс-экземпляру для веб-сокетов.

Теперь моему приложению нужно будет показывать обновления в режиме реального времени, мне придется использовать соединение веб-сокета между моим браузером и внешним сервером, для которого в дальнейшем потребуется веб-сокет /соединение webhook с моим внутренним сервером

Это не так.При желании вы можете подключить ваш веб-интерфейс (приложение, запущенное в браузере) напрямую к бэкэнду через веб-сокет, без необходимости прокси-сервера через сервер веб-интерфейса.Для управления сессиями обращайтесь к токенам JWT.

0 голосов
/ 28 сентября 2019

Вы можете перейти на библиотеку socket.io в Nodejs.Он прост и удобен в использовании. Масштабируемость и сеанс можно обработать, введя Redis,

check https://socket.io/docs/using-multiple-nodes/

...