zeromodule
@zeromodule
PHP

Как веб-страница может узнать порт WebSocket-сервера, поднятого в Heroku?

Для пробы Node.js пишу небольшой чатик на веб-сокетах: https://github.com/zeromodule/zerochat
В ноде совсем ничего не понимаю ещё.

Когда порт, который слушает WebSocketServer указан явно и прописан и в клиенте (main.js), и в сервере (server.js) - всё хорошо работает локально, на своих виртуалках и т.д.

Но теперь возникла необходимость потестить этот проектик на Heroku, а там порт на который можно забиндить сервер, выбирается Heroku динамически и должен указываться в коде серверной части примерно так:
process.env.PORT || 5000
Код сервера из их же тестового приложения: https://github.com/heroku-examples/node-ws-test/bl...

Вопрос собственно в том а каким образом клиент узнает о том, какой там сейчас порт, ведь ему нужно это знать, чтобы подключиться?
Как это лучше сделать?
Кстати, как их тестовое приложение работает (а оно работает) я не понимаю, потому что там в клиенте порт вообще не указывается: https://github.com/heroku-examples/node-ws-test/bl...
  • Вопрос задан
  • 3197 просмотров
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Все просто, пусть nginx проксирует все websockets запросы с 80-ого порта на порт вашего приложения. Забрать значение из ENV вы можете. Так же вы можете сделать запрос на сервер что бы забрать порт.

В примере же порт не указывается потому что на этом же порту работает и приложение. Оно просто берет текущий хост (доменное имя + порт).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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