Почему мое приложение не устанавливает соединение с веб-сокетом на Heroku?
Я пытаюсь развернуть мое приложение nodejs на heroku. Я не могу установить соединение через веб-сокет. Я прочитал все, что мог найти, попробовал каждый пример, и ни один из них, похоже, не работает для меня.
Когда я пытаюсь открыть свою страницу "heroku open", nodejs правильно выдает мне html-файл. Тем не менее, соединение websocket 'ws' никогда не устанавливается.
Мой server.js имеет следующие конфигурации:
var pport = process.env.PORT || 5000;
server.listen(pport, function(err) {
if(!err) { console.log("Listening on port " + pport); }
});
Примечание Когда я проверяю «логи герою», я обнаруживаю, что порт, на котором запущено мое приложение, является случайным 5-значным числом. (например, 28896, 53365 и т. д.) Во второй половине он никогда не запускается || 5000.
Но дело в том, что для того, чтобы мой файл game.html установил соединение с веб-сокетом, ему нужно знать, какой порт. Я пробовал следующие конфигурации клиента, ни одна не работала:
1)
var host = location.origin.replace(/^http/, 'ws');
this.connection = new WebSocket(host);
2)
var host = location.origin.replace(/^http/, 'ws');
host = host + ":5000";
this.connection = new WebSocket(host);
3)
this.connection = new WebSocket('ws://infinite-earth-7708.herokuapp.com/');
Я также сделал то, что сказал их веб-сайт, и попытался использовать следующее после развертывания моего приложения:
heroku config:add NODE_ENV=production
пожалуйста, порекомендуйте