如何在 Heroku multi buildpack php + nodejs 中启动快速服务器



我正在 Heroku 上创建一个 Web 应用程序,我需要在我的 php 应用程序的一部分中进行一些实时数据更新。

所以我想我可以在快递服务器上使用 socket.io 来提供实时通信功能。

当它是 php 构建包时,我应该如何运行该快递。

这是我的包.json脚本部分

"scripts": {
"dev": "cross-env NODE_ENV=development webpack --config config/config.dev.js",
"build": "cross-env NODE_ENV=production webpack --config config/config.prod.js",
"start": "node server.js",
"test": "echo "Error: no test specified" && exit 1"
},

我的程序文件是...

web: vendor/bin/heroku-php-apache2 public/

和我的构建包

$ heroku buildpacks
1. heroku/nodejs
2. heroku/php

当我在 heroku 上部署它时,我在 heroku 日志中没有收到编译错误,但我的 web 应用程序没有从服务器获得 socket.io 实时更新。 在浏览器的控制台日志中,我收到 404 错误 http://myapp.herokuapp.com/socket.io/?EIO=3&transport=polling

我在这里做错了什么?

如果你想运行一个node/express web dyno,你需要在你的procfile中web: npm start

然而,听起来你想要一个PHP网络服务器,节点/快递侦听不同的端口。在Heroku上你真的不能这样做。相反,您需要为节点应用程序使用workerdyno。但是,您将无法通过URL直接从前端访问您的workerdyno。相反,您需要执行此处描述的操作。

另请参阅此答案。

最新更新