Задать вопрос
spacenear
@spacenear
React Web Developer

Как все настроить на VDS для запросов к вебсокетам на node js?

Решил изучить node - хочу разобраться как делать вебсокет сервер. Помогите понять как все устроено, пожалуйста.
И не судите строго, видимо у меня не хватает понимания о клиент-серверном взаимодействии, поэтому мои вопросы могут показаться вам странными.

Вот локально я разработал приложение, запускаю его и теперь мои сокеты работают к примеру на localhost:3000
И с любого локального сайта я могу к нему подключаться из js.

А вот вопросы когда это дело на хостинге происходит.
1) Получается там сокеты будут доступны на ip адресе VDS и указаном порте?
Не очень понимаю этот момент. А если у VDS для каждого сайта разный ip будет - как мне понять на каком запустятся сокеты?

2) Как запустить процесс сервера и сделать так, что бы можно было закрыть консоль и он автоматически перезапускался при падении и запускался при перезагрузке VDS

3) Для того что бы подключиться к вебсокетам из js скрипта - нужно указывать именно ip и порт или можно указать просто url определнный - и если можно url - то где настраивается это все. Я имею ввиду по какому url будет доступен сокет.
  • Вопрос задан
  • 165 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
fzfx
@fzfx
18,5 дм
> Получается там сокеты будут доступны на ip адресе VDS и указаном порте?
да.

> А если у VDS для каждого сайта разный ip будет - как мне понять на каком запустятся сокеты?
какой в конфиге IP-адрес укажете - на том и будут.

> Как запустить процесс сервера и сделать так
напишите unit для systemd. больше информации - по запросу "unit для systemd".

> Для того что бы подключиться к вебсокетам из js скрипта - нужно указывать именно ip и порт
нужно указывать URL.

> где настраивается это все.
где-то в приложении или в его конфиге. точно не укажу - с node.js не знаком.
Ответ написан
Комментировать
bingo347
@bingo347 Куратор тега Node.js
Crazy on performance...
По нормальному нода не должна торчать наружу, Вы ведь остальное апи проксируете через nginx наверняка? Можно просто сделать для определенного локейшена прокси на порт где он поднят, что-то вроде такого:
location /ws {
  proxy_pass http://localhost:3000;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "Upgrade";
}


Как запустить процесс сервера и сделать так, что бы можно было закрыть консоль и он автоматически перезапускался при падении и запускался при перезагрузке VDS
pm2
Ответ написан
Комментировать
john36allTa
@john36allTa
alien glow of a dirty mind
Websockets работают на базе http/https сервера, потому можно разрешить доступ к ним откуда угодно. В спецификации технологии предусмотрена обязательная проверка origin, т.е. url с которого идёт подключение, и протокол - строковой параметр. Origin, кстати, можно подделать.
Подключаться ws(s)://f.q.domain.name:{port: number}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы