Что такое Channels?
Channels — это проект, который использует Django и расширяет его возможности за пределы HTTP — для обработки WebSockets, протоколов чата, IoT-протоколов и многого другого. Он построен на спецификации Python под названием ASGI.
Он делает это, беря ядро Django и размещая под ним полностью асинхронный слой, запуская сам Django в синхронном режиме, но обрабатывая соединения и сокеты асинхронно, и давая вам возможность писать в любом стиле.
Django-Channels или просто Channels — это пакет Python, который расширяет веб-протокол, поддерживаемый Django, помимо HTTP, на другие веб-протоколы, такие как WebSocket, IoT, протоколы чата и т. д.
Пакет Channels поддерживает собственный синхронный характер Django, но при этом позволяет писать асинхронный код. Он также поддерживает систему аутентификации и сеансов Django.
Пакет Channels использует потребителей (которые эквивалентны представлениям Django). Потребитель создается для каждого соединения WebSocket от клиента и сохраняется до тех пор, пока соединение с веб-сокетом не будет закрыто.
Потребитель также может общаться с другими потребителями, и несколько потребителей могут быть частью одной группы каналов. Связь между несколькими потребителями может быть достигнута через уровни канала.