каналы django против дафена
Меня немного смущают основные роли django-каналов и uvicorn server. Я прочитал много блогов, но не получил особых разъяснений.
Если мы можем реализовать сервер ASGI для веб-сокетов с использованием каналов, тогда зачем нам нужен сервер asgi отдельно, как дафен или uvicorn?
1 ответ
Дафна - это сервер ASGI, а Django Channels - это ASGI Framework для Django. Ссылки взяты с http://www.uvicorn.org/.
Также ниже упоминается ссылка из другого блога:
Каналы были созданы для поддержки асинхронных протоколов, таких как Websockets и HTTP с длинным опросом. Приложения Django по-прежнему работают синхронно. Каналы - это официальный проект Django, но не часть ядра Django.
Проект Django Async будет поддерживать написание приложений Django с асинхронным кодом в дополнение к синхронному. Async - это часть ядра Django.
Обеими руководил Эндрю Гудвин.
В большинстве случаев это самостоятельные проекты. У вас может быть проект, в котором используется одно или оба. Например, если вам нужно поддерживать приложение чата через веб-сокеты, вы можете использовать каналы без использования интерфейса ASGI Django. С другой стороны, если вы хотите создать асинхронную функцию в представлении Django, вам придется дождаться поддержки Django Async для представлений.