node.js — Как запустить экспресс-сервер в Heroku multi buildpack php + nodejs

Я создаю веб-приложение на 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&транспорт = опрос

Что я здесь не так делаю?

0

Решение

Вам нужно web: npm start в вашем procfile, если вы хотите запустить узел / экспресс веб-dyno.

Однако это звучит так, как будто вы хотите веб-сервер PHP с прослушиванием узла / экспресса на другом порту. Вы не можете сделать это на Heroku. Вместо этого вам понадобится рабочий dyno для вашего приложения узла. Однако вы не сможете получить прямой доступ к своему рабочему столу через веб-интерфейс. Вместо этого вам нужно сделать что-то вроде того, что описано Вот.

Смотрите также этот ответ.

1

Другие решения

Других решений пока нет …