What is it? Why care? How to use it?
Request goes in.
Src: Jacob Kaplan-Moss
Response goes out.
You can't explain it...
Request goes in.
Src: Jacob Kaplan-Moss
Yeah......
Async processing is hard.
Don't overcomplicate your application if you really don't need data that realtime.
Initial builds can be done without channels, and then as you determine the UX pain points you can round out the experience with this.
Django supports HTTP/HTTPS. Channels (originally called django-onair) was started explicitly to allow Django to use WebSockets.
Eventually Channels was redefined so that architecture could support other protocols (MQTT, XMPP,etc) and would be future proofed against additional protocols.
$ django-admin runserver
$ daphne -b 0.0.0.0 -p 80 testproject.asgi:channel_layer
$ python manage.py runworker