Django не направляет Heroku Websokect в Dyno - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь включить каналы V2 для приложения Django, развернутого в Heroku.Веб-dyno WSGI работает отлично, но второй веб-dyno для каналов ASGI никогда не получает запросы, поэтому при попытке создать соединение через веб-сокет я получаю ответ 404.

Вот файл Procfile:

web: gunicorn app_xxx.wsgi --log-file -
web2: daphne app_xxx.routing:application --port $PORT --bind 0.0.0.0 -v2

Я также пытался с Uvicorn как:

web: gunicorn app_xxx.wsgi --log-file -
web2: gunicorn app_xxx.asgi:application -b 0.0.0.0:$PORT -w 1 -k uvicorn.workers.UvicornWorker

Кажется, что все на местепросто нужно найти способ разоблачить конечную точку wss

1 Ответ

0 голосов
/ 18 июня 2019

Для того, чтобы каналы работали на Heroku, вы должны сначала добавить надстройку Redis, а затем убедиться, что ваша переменная CHANNEL_LAYERS в вашем settings.py указывает на этот хост Redis. Ниже вы можете увидеть пример:

CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "channels_redis.core.RedisChannelLayer",
        "CONFIG": {
            "hosts": [config('CHANNEL_LAYERS_HOST')],
        },
    },
}
...