Я создаю веб-приложение на Heroku, где мне нужно обновить данные в реальном времени в части моего php-приложения.
Поэтому я думаю, что могу использовать socket.io на экспресс-сервере для обеспечения функциональности связи в реальном времени.
Как мне запустить экспресс, когда это php buildpack.
Вот мой раздел сценария 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"},
Мой профайл …
web: vendor/bin/heroku-php-apache2 public/
и мои buildpacks
$ heroku buildpacks
1. heroku/nodejs
2. heroku/php
При развертывании этого на heroku я не получаю ошибку компиляции в логах heroku, но мое веб-приложение не получает обновлений в реальном времени с сервера socket.io.
В журнале консоли браузера я получаю сообщение об ошибке 404 http://myapp.herokuapp.com/socket.io/?EIO=3&транспорт = опрос
Что я здесь не так делаю?
Вам нужно web: npm start
в вашем procfile, если вы хотите запустить узел / экспресс веб-dyno.
Однако это звучит так, как будто вы хотите веб-сервер PHP с прослушиванием узла / экспресса на другом порту. Вы не можете сделать это на Heroku. Вместо этого вам понадобится рабочий dyno для вашего приложения узла. Однако вы не сможете получить прямой доступ к своему рабочему столу через веб-интерфейс. Вместо этого вам нужно сделать что-то вроде того, что описано Вот.
Смотрите также этот ответ.
Других решений пока нет …