我正在Heroku上创建一个webapp,我需要在我的php应用程序的一部分中进行一些实时数据更新。
所以我想我可以在express服务器上使用socket.io来提供实时通信功能。
如何在php buildpack中运行express。
这是我的package.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"
},
我的procfile是......
web: vendor/bin/heroku-php-apache2 public/
和我的buildpacks
$ heroku buildpacks
1. heroku/nodejs
2. heroku/php
当我在heroku上部署它时,我在heroku日志中没有编译错误,但是我的webapp没有从socket.io服务器获得实时更新。 在浏览器的控制台日志中,我在http://myapp.herokuapp.com/socket.io/?EIO=3&transport=polling
上收到404错误我在这里做错了什么?
答案 0 :(得分:1)
如果要运行节点/ express web dyno,则需要在proc文件中使用web: npm start
。
然而,听起来你想要一个PHP Web服务器,其中node / express在不同的端口上侦听。你无法在Heroku上真正做到这一点。相反,您需要为您的节点应用程序使用工作器dyno。但是,您无法通过URL直接从您的前端访问您的工作人员dyno。相反,您需要执行类似here所述的操作。
另见this answer。