我是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(使用前将#替换为@)