Как запустить экспресс-сервер в Heroku multi buildpack php + nodejs - PullRequest
0 голосов
/ 02 мая 2018

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

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

1 Ответ

0 голосов
/ 02 мая 2018

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

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

См. Также этот ответ .

...