Невозможно развернуть приложение ASGI с каналами

Изначально я использовал WSGI + gunicorn + nginx (в качестве балансировщика нагрузки) для развертывания своего приложения в докеризированной среде с python 3.9. Теперь я хочу реализовать каналы и socket io в приложении.

На сервере разработки (использующем runserver) ASGI-сервер работает нормально. Я могу подключаться к WebSockets и HTTP конечным точкам, но когда я развертываю его на рабочем сервере с помощью docker + gunicorn + uvicon и nginx для proxy_pass соединений с http://web-app:5000 вверх по течению, он выдает внутреннюю ошибку сервера со следующими журналами ошибок

[2021-12-09 18:53:35 +0000] [105] [ERROR] Exception in ASGI application
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi
    result = await app(self.scope, self.receive, self.send)
  File "/usr/local/lib/python3.9/site-packages/uvicorn/middleware/proxy_headers.py", line 75, in __call__
    return await self.app(scope, receive, send)
  File "/usr/local/lib/python3.9/site-packages/channels/routing.py", line 71, in __call__
    return await application(scope, receive, send)
  File "/usr/local/lib/python3.9/site-packages/asgiref/compatibility.py", line 34, in new_application
    instance = application(scope)
TypeError: 'tuple' object is not callable

Ниже приведена конфигурация моего ASGI сервера в файле myweb.asgi.py

import os
from django.core.asgi import get_asgi_application
from django import setup

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myweb.settings")
setup()

http = get_asgi_application(),

import routing
from channels.routing import ProtocolTypeRouter, URLRouter

application = ProtocolTypeRouter({
    "http": http,
    "websocket": URLRouter(routing.websocket_urlpatterns)
})

Django версии 3.2.7

Версии каналов: 3.0.4

Вернуться на верх