каналы 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 для представлений.

Другие вопросы по тегам