SocketIO не работает в среде Heroku [Работает в Localhost] - PullRequest
0 голосов
/ 27 февраля 2019

Я разработал программу чата с NodeJS и SocketIO.Затем я развернул сервер Heroku и обнаружил, что SocketIO не работает в Heroku.

Я уже проверил журнал в Heroku, но там ничего нет.Но странно, что он работает на локальном хосте, а не в среде Heroku.Я думаю, что есть некоторые проблемы с настройкой ПОРТА.

[Код на стороне сервера]

/* Socket IO Settings */
const server = require('http').Server(express);
const io = require('socket.io')(server);
let port = process.env.PORT || 3001;
server.listen(port, function () {
  console.log(`SocketIO Listening on port : ${port}`)
});

[Код на стороне клиента]

/* Chat Functions */
var socket = io.connect(`${window.location.hostname}:3001`);

Сначала я просто использую код var socket = io.connect('http://localhost:3001');, и он хорошо работает в Localhost Env.Но после развертывания на heroku я добавляю переменную Heroku, чтобы использовать ее в работе.

[Настройка порта]

NODEJS Server : 3000
SOCKET IO : 3001
Heroku process.env.PORT : 3001 (But When I check Heroku console it changes everytime when I reload the dynos and in Logs said me that the ports are already in use.)

Я уже прочитал Документ Heroku, но кажется, чтоЯ создаю приложение NodeJS с Express Generator. Думаю, это должно быть другое решение.Я уже пробовал документацию по герою, но она не работает

1 Ответ

0 голосов
/ 27 февраля 2019

Установите ip вашего сервера в функции server.listen

var ip='127.0.0.1';
var port ='3001' ;
server.listen(ip,port, function() {console.log('server stsrt in ip: ' +ip+' and port: ' +port);}) ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...