Cap*_*ate 8 heroku websocket node.js
我正在尝试在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); }
});
Run Code Online (Sandbox Code Playgroud)
旁注 当我检查"Heroku的日志",我发现我的应用程序运行的端口是随机5位数字.(如28896,53365等)它实际上从未在下半场运行|| 5000.
但问题是,为了让我的game.html文件建立一个websocket连接,它需要知道什么端口.我尝试了以下客户端配置,没有一个工作:
1)
var host = location.origin.replace(/^http/, 'ws');
this.connection = new WebSocket(host);
Run Code Online (Sandbox Code Playgroud)
2)
var host = location.origin.replace(/^http/, 'ws');
host = host + ":5000";
this.connection = new WebSocket(host);
Run Code Online (Sandbox Code Playgroud)
3)
this.connection = new WebSocket('ws://infinite-earth-7708.herokuapp.com/');
Run Code Online (Sandbox Code Playgroud)
我也完成了他们网站所说的内容,并在部署我的应用后尝试使用以下内容:
heroku config:add NODE_ENV=production
Run Code Online (Sandbox Code Playgroud)
请指教
Cap*_*ate 10
好吧我明白了.这是你应该知道的:
我的客户端配置如下所示:
var host = location.origin.replace(/^http/, 'ws');
this.connection = new WebSocket(host);
Run Code Online (Sandbox Code Playgroud)
但这里是踢球者.在终端上我使用了以下命令:
heroku labs:enable websockets
Run Code Online (Sandbox Code Playgroud)
瞧,它有效!我希望这可以帮助别人.