@devdev10111

Объясните структуру веб-сервера на node js и socket.io?

привет! вопрос составлен немного некорректно, сейчас переформулирую детальнее. недавно начал изучать веб-приложения (в частности бекенд на ноде) и не совсем понимаю, как и за что компоненты веб сервера отвечают? на данный момент хочу лишь понять концептуально.

вот, допустим, у нас есть vps на линуксе и установленной нодой.
чтобы vps смог получать/обрабатывать/отправлять http запросы извне, нужно установить веб-сервер: nginx/apache.
на этом понимание концепции заканчивается. объясните пожалуйста, следующие моменты:
  1. Чем nginx отличается от express.js? Пишут, что и то и то - веб серверы. Насколько я понимаю, nginx это сервер на низком уровне (для ОС), а express "высокоуровневый" (для ноды). То есть схема всего веб-приложения такая: ОС - nginx - express js, верно?
  2. если составить блок-схему современного приложения на express.js и socket.io, то какая связь будет между ними? http и ws запросы проходят через связку express, который уже решает обрабатывать их как обычные http запросы или использовать socket.io или ws запросы уходят сразу в socket.io?
  3. если вы находили полезные материалы/видео по разбору структуры приложения на express/socket.io, поделитесь пожалуйста
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
1. Epxress от Nginx отличается главным образом тем, что первый - это сервер для Node.js приложений, а второй для Linux. Вы можете не использовать Express, или не использовать Nginx. По отдельности эти технологии так же будут работать. Чаще всего, ставят связку Nginx + Express для упрощения администрирования нескольких сайтов на одном VPS. Nginx отвечает за внешний роутинг при обращению к сайту, он передаёт запрос нужному Node.js приложению (и не обязательно это должен быть Node.js + Express). А дальше уже Express разбирается с запросом и выполняет бизнес-логику.

2. По большому счёту, в такой связке проще всего воспринимать Socket.io как расширение для Express, добавляющее поддержку сокетов. Технически, Socket.io не нуждается в Express и может работать на любом другом сервере. Но так как вы задействуете Express, запрос проходит сначала в него, а дальше управление передаётся в Socket.io. Если вас интересует более глубокое погружение - то лучше всего читать документацию Socket.io и смотреть, как работает он.

3. https://socket.io/get-started/ https://socket.io/docs/v4/server-initialization/#w... - у Socket.io прекрасная документация, которая на примерах показывает различные варианты использования.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы