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



我正在尝试在heroku上部署我的nodejs应用程序。我无法建立网络套接字连接。我已经阅读了我能找到的所有内容,尝试了每个示例,但似乎都不适合我。

当我尝试打开我的页面"heroku open"时,nodejs 正确地给了我 html 文件。但是,websocket 'ws' 连接永远不会建立。

我的服务器.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。

但问题是,为了让我的游戏.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

请告知

嗯,

我想通了。以下是您应该知道的:

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

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

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

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

heroku labs:enable websockets

瞧,它有效!我希望这对某人有所帮助。

相关内容

  • 没有找到相关文章

最新更新