为什么我的应用程序不会在Heroku上建立websocket连接?

时间:2013-11-03 16:04:26

标签: node.js heroku websocket

我正在尝试在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

请告知

1 个答案:

答案 0 :(得分:7)

好吧我明白了。这是你应该知道的:

  • 我没有从原来的帖子中更改我的服务器配置。

我的客户端配置如下所示:

var host = location.origin.replace(/^http/, 'ws');
this.connection = new WebSocket(host);

但这是踢球者。 在终端上,我使用了以下命令:

heroku labs:enable websockets

瞧,它有效!我希望这有助于某人。