Цель использования daphne с каналами django
Почему основной целью является использование daphne с каналами django, если мы уже можем сделать конфигурацию asgi самостоятельно? Например, какова связь между ASGI & daphne server если бы вы могли дать четкое объяснение, это было бы очень полезно
Вам нужен сервер, который говорит и понимает ASGI, а также способен говорить и понимать такие протоколы, как HTTP (формат HTTP охватывает HTTP/1.0, HTTP/1.1 и HTTP/2.0) и Websocket.
Your server will run on top of this server and your server will communicate with this server. [1]
ASGI Rationale
.
Спецификация ASGI предлагает стандартный интерфейс между сетевыми протокольными серверами (в частности, веб-серверами) и приложениями Python, предназначенный для работы с несколькими общими стилями протоколов
Daphne - это HTTP, HTTP2 и WebSocket протокольный сервер для ASGI и ASGI-HTTP, разработанный для работы с Django Channels.
Таким образом, ни Django, ни Django Channels (и, соответственно, ваш сервер) сами по себе не являются ASGI-серверами, но фактически являются ASGI-приложениями. ASGI-приложения должны иметь точку входа, из которой ASGI-сервер может их вызывать. Согласно спецификации, она должна выглядеть следующим образом:
coroutine application(scope, receive, send)
Not that it must not be exact but the idea is well conveyed. Django provides that entry point. See How to deploy with ASGI. [django-docs]
[1] Your server (actually Django, Django Channels and any other frameworks that will themselves actually communicate with Daphne) is defined as the application in the ASGI specification whereas Daphne is defined as the server.