Можно ли получить протокол Mercure с Heroku, используя платформу API?
Я развернул API и клиент API Platform с использованием Heroku, но похоже, что Mercure не работает "из коробки", но я думаю, что в моем приложении отсутствует конфигурация.
Единственное, что я настроил, это MERCURE_SUBSCRIBE_URL = http://my-random-herokuapp-name-generated.herokuapp.com/hub.
В производственном процессе я получаю сообщение об ошибке 404 на своем хаб-адресе, а локально я получаю ответ о том, что не предоставил тему (что имеет смысл, потому что я просто запросил адрес, чтобы выполнить тестирование без указания каких-либо параметров).
В локальной среде платформа API полного пакета предоставляется вместе с докером, на котором запущен сервер Mercure. Думаю, это может быть ответом на то, что herokuapp не поддерживает Mercure, но мне это не очень понятно.
Поэтому я получаю ошибку 404 not found на адресе концентратора вместо 200
1 ответ
Чтобы использовать Mercure с платформой API, необходимо также развернуть концентратор Mercure. Хаб можно скачать по https://mercure.rocks/. Затем вы можете легко развернуть его на Heroku в качестве приложения Go.
Твой Procfile
должен выглядеть так:
web: ADDR=$PORT ./mercure
Всем, даже если это небезопасно (см. Документ mercure, чтобы узнать больше https://mercure.rocks/docs/hub/install)
этот Procfile просто работает из коробки с heroku
web: ADDR=:$PORT ./mercure --jwt-key='!ChangeMe!' --debug --allow-anonymous --cors-allowed-origins='*' --publish-allowed-origins='*'