当 Web 端口 80 已被使用时,如何监听 Heroku 上的任何端口?

2023-12-31

我是heroku新手,我已经在heroku上部署了meteorjs应用程序。我的 Meteorjs 应用程序是一个 Web 应用程序,因此构建完成后,它在端口 80 上的 heroku 上运行。但同时我也想监听端口,例如:4000 或任何端口,以便我可以捕获由任何第三方触发的 webhook 事件想听。在我的本地计算机上,它与在一个端口上运行的 webapp 和在另一个端口上运行的侦听器完美运行,但在我部署后,它只是运行的 webapp,而侦听器不侦听。有人可以帮助我或指导我吗?也欢迎任何新的解决方案。

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

bot.listen(4000);

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

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

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


Heroku 为您分配端口,因此您无法设置自己的端口。您必须从以下位置读取端口号PORT环境变量。在节点中这将是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'));
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当 Web 端口 80 已被使用时,如何监听 Heroku 上的任何端口? 的相关文章

随机推荐