Heroku-Server: почему в URL-адресе конечной точки нет порта? - PullRequest
0 голосов
/ 30 апреля 2020

Я сделал небольшое Chat-App -> React JS Клиент чата и Node-JS (socket.io / express) сервер Web-Socket.

После завершения тестирования я развернул NodeJS -Web-сокет-сервер на heroku.

URL, который я должен использовать в клиенте , равен const ENDPOINT = 'https://jorroch-consulting.herokuapp.com/';

Что меня удивляет, так это то, что мне пришлось используйте порт в URL-адресе конечной точки, когда мой сервер все еще был запущен на локальном хосте. URL выглядел следующим образом: const ENDPOINT = 'localhost:5000';

Это произошло потому, что мой сервер прослушивал порт 5000: server.listen(PORT, () => console.log('Server has started on port ${PORT}'));

Теперь, когда сервер развернут на героку, у клиента нет информация о порте 5000 и тем не менее он работает.

Как мой React-Client узнает, какой порт является правильным? Все ли запросы геройку перенаправляет на порт 5000? Но откуда они знают? Они сканируют код?

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

1 Ответ

0 голосов
/ 30 апреля 2020

приложение прослушивает порт, который вы выбрали для localhost, в Heroku оно назначается вам динамически и сопоставляется с данным именем хоста, т. Е. jorroch-consulting.herokuapp.com.
Доступ к хосту (по HTTPS) перенаправляется на внутренняя служба через порт $ PORT.

Веб-приложения Heroku имеют один единственный порт ($ PORT), поэтому вы не можете иметь 2 порта в одном и том же Web-dyno. Вы можете масштабировать свой dyno, чтобы иметь несколько экземпляров, или развернуть другое приложение, если второй сервер предоставляет другие функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...