【问题标题】:Django not routing Heroku Websokect to dynoDjango 没有将 Heroku Websokect 路由到 dyno
【发布时间】:2019-10-20 08:32:57
【问题描述】:

我正在尝试为部署在 Heroku 中的 Django 应用启用 Channels V2。 WSGI web dyno 完美运行,但 ASGI 通道的第二个 web dyno 从未收到请求,因此在尝试创建 websocket 连接时,我得到 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 端点

【问题讨论】:

    标签: python django heroku django-channels


    【解决方案1】:

    为了使 Channels 在 Heroku 上运行,您应该首先添加一个 Redis 插件,然后确保您的 settings.py 中的 CHANNEL_LAYERS 变量指向这个 redis 主机。下面你可以看到一个例子:

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

    【讨论】:

      猜你喜欢
      • 2021-05-13
      • 1970-01-01
      • 1970-01-01
      • 2015-05-23
      • 2019-08-28
      • 2022-01-14
      • 2012-07-30
      • 1970-01-01
      • 2021-06-03
      相关资源
      最近更新 更多