提问者:小点点

由于某些端口问题,无法在Heroku上部署应用程序


我一直在尝试将一个存储库https://github.com/evelynhathaway/triton-poll部署到heroku,但由于我对NodeJs相当陌生,所以无法检测到问题。 但我猜这是端口的原因,因为heroku不使用静态端口。 如有任何帮助,我们将不胜感激。 提前谢谢你。


共1个答案

匿名用户

我看了看叉子,你犯了几个错误。 我没有时间去修复,测试和让它运行,但我可以向你展示我以前是如何解决它的。

所有相关的代码更改都可以在此提交(不同的项目)中找到:
https://github.com/vegeta897/d-zone/commit/63730fd7f44d2716a31fcae55990d83c84d5ffea

>

  • 项目被分为客户端和服务器部分。
    您可以在这里看到,https://github.com/vegeta897/d-zone/blob/63730fd7f44d2716a31fcae55990d83c84d5ffea/script/websock.js#l16,我是如何将服务器和客户端合并为一个。 这只是因为静态客户端文件是通过http/HTTPS提供的,并且服务器使用websocket,而不使用httpWS/WSS

    在Heroku上发布服务器时,需要绑定到它们的动态端口。 但是,当您想要访问web服务器时,您不需要指定端口。 主机名将自动转换为IP-地址+端口组合。 我在这里做到了:https://github.com/vegeta897/d-zone/blob/63730fd7f44d2716a31fcae55990d83c84d5ffea/web/main.js#l44当部署在Heroku上时,socketurl不包含端口号。

    最后绑定到服务器。 我在这里完成了以下操作:https://github.com/begeta897/d-zone/blob/63730fd7f44d2716a31fcae55990d83c84d5ffea/script/websock.js#l55和https://github.com/begeta897/d-zone/blob/63730fd7f44d2716a31fcae55990d83c84d5ffea/socket-config.js#l30

    您还必须确保您的客户端文件是正确构建和服务的。