我正在尝试在heroku上部署我的nodejs应用程序。我无法建立websocket连接。我已经阅读了我能找到的所有内容,尝试了每一个例子,但似乎没有一个适合我。
当我尝试打开“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); }
});
旁注 当我检查“heroku日志”时,我发现我的应用程序运行的端口是一个随机的5位数字。 (如28896,53365等)它实际上从未在下半场运行|| 5000。
但事实是,为了让我的game.html文件建立一个websocket连接,它需要知道什么端口。 我尝试了以下客户端配置,没有一个工作:
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
请告知
答案 0 :(得分:7)
好吧我明白了。这是你应该知道的:
我的客户端配置如下所示:
var host = location.origin.replace(/^http/, 'ws');
this.connection = new WebSocket(host);
但这是踢球者。 在终端上,我使用了以下命令:
heroku labs:enable websockets
瞧,它有效!我希望这有助于某人。