gpt4 book ai didi

javascript - 当 web 端口 80 已被使用时,如何监听 heroku 上的任何端口?

转载 作者:搜寻专家 更新时间:2023-10-31 23:29:53 42 4
gpt4 key购买 nike

我是 heroku 的新手,我已经在 heroku 上部署了一个 meteorjs 应用程序。我的 Meteorjs 应用程序是一个 web 应用程序,所以在构建完成后它会在端口 80 上的 heroku 上运行。但同时我也想在端口 eg:4000 或任何端口上监听,以便我可以捕获任何第三方触发的我的 webhook 事件我想听。在我的本地机器上,它运行完美,webapp 在一个端口上运行,监听器在另一个端口上运行,但在 heroku 上,在我部署它后,它只是运行的 webapp,而监听器不监听。任何人都可以帮助我或指导我。也欢迎任何新的解决方案..

在我的 server/main.js 中,我创建了一个 facebook-bot-messenger 的机器人实例,下面是启动监听器的代码

bot.listen(4000);

在我的 client/main.html 中,我有 html 代码,它只是 hello world

当我访问 http://localhost:3000 时在本地机器上我可以看到 helloworld 并且应用程序也在监听端口 4000。

当我访问 heroku 时 https://appname.herokuapp.com我看到了 hell 世界。在这种情况下,端口是 80,这很好,但机器人没有像我在 https://appname.heroku.com 上进行的任何邮寄调用一样收听。在端口 4000 上没有响应。

最佳答案

Heroku 会为您分配端口,因此您无法自行设置。您必须从 PORT 环境变量中读取端口号。在 Node 中,这将是 process.env.PORT

您还可以将 || 用于 as 和 OR。例如在下面的例子中,它会在 Heroku 上从环境变量中读取端口号,但在本地它会默认为端口 4000

const app = express();
app.set('port', (process.env.PORT || 4000));

//Start Server
app.listen(app.get('port'), function() {
console.log('Node app is running on port', app.get('port'));
});

关于javascript - 当 web 端口 80 已被使用时,如何监听 heroku 上的任何端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43944929/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com