我一直在尝试将存储库https://github.com/evelynhathaway/triton-poll部署到heroku,但是由于我对NodeJ相当陌生,因此无法检测到该问题。但是我想这是由于端口造成的,因为heroku不使用静态端口。 任何帮助,将不胜感激。 预先谢谢你。
答案 0 :(得分:0)
我看着叉子,你犯了几个错误。我没有时间去修复,测试和运行它,但是我可以向您展示我之前如何解决它。
所有相关的代码更改都可以在此提交(不同的项目)中找到:
https://github.com/vegeta897/d-zone/commit/63730fd7f44d2716a31fcae55990d83c84d5ffea
项目分为客户端和服务器部分。
您可以在https://github.com/vegeta897/d-zone/blob/63730fd7f44d2716a31fcae55990d83c84d5ffea/script/websock.js#L16处看到如何将服务器和客户端结合在一起。这仅适用,因为静态客户端文件是通过http/https
提供的,并且服务器使用的是websocket,而不是http ws/wss
在Heroku上发布服务器时,需要绑定到其动态端口。但是,当您要访问Web服务器时,您不指定端口。主机名将自动转换为ip地址+端口组合。我在这里做的是:https://github.com/vegeta897/d-zone/blob/63730fd7f44d2716a31fcae55990d83c84d5ffea/web/main.js#L44在Heroku上部署时,socketURL
不包含端口号。
最后,您绑定到服务器。我在https://github.com/vegeta897/d-zone/blob/63730fd7f44d2716a31fcae55990d83c84d5ffea/script/websock.js#L55和这里https://github.com/vegeta897/d-zone/blob/63730fd7f44d2716a31fcae55990d83c84d5ffea/socket-config.js#L30
您还必须确保正确构建并提供了客户端文件。