Javascript 当web端口80已经在使用时,如何侦听heroku上的任何端口?

Javascript 当web端口80已经在使用时,如何侦听heroku上的任何端口?,javascript,node.js,meteor,heroku,port,Javascript,Node.js,Meteor,Heroku,Port,我是heroku的新手,我在heroku上部署了meteorjs应用程序。我的Meteorjs应用程序是一个Web应用程序,因此在构建完成后,它将在heroku端口80上运行。但同时,我还想在端口上监听,例如:4000或任何端口,这样我就可以捕捉到我想监听的任何第三方触发的webhook事件。在我的本地机器上,它在一个端口上运行webapp,在另一个端口上运行listener,但在heroku上,在我部署它之后,它只运行webapp,而listener不侦听。谁能帮助我或指引我。欢迎提供任何新的

我是heroku的新手,我在heroku上部署了meteorjs应用程序。我的Meteorjs应用程序是一个Web应用程序,因此在构建完成后,它将在heroku端口80上运行。但同时,我还想在端口上监听,例如:4000或任何端口,这样我就可以捕捉到我想监听的任何第三方触发的webhook事件。在我的本地机器上,它在一个端口上运行webapp,在另一个端口上运行listener,但在heroku上,在我部署它之后,它只运行webapp,而listener不侦听。谁能帮助我或指引我。欢迎提供任何新的解决方案

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

bot.listen(4000);
在我的client/main.html中,我有一个html代码,它就是hello world

在本地机器上,当我访问时,我可以看到helloworld和应用程序也在监听端口4000


在heroku,当我访问时,我看到了helloworld。在这种情况下,端口是80,这很好,但是bot没有监听,因为我在端口4000上进行的任何post调用都没有响应。

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

您还可以对as和OR使用
|
。例如,在以下情况下,它将在Heroku上从环境变量中读取端口号,但在本地它将默认为port
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'));
});

你能编辑你的问题以包含你正在听的代码吗?通常,您可以创建任意数量的服务器终结点。编辑此问题,任何新的解决方案也将对我有所帮助。。我今天刚开始使用heroku,我不知道应该对heroku或我的代码做什么更改才能运行它。。