Django 3.1.2 project example to show off how websockets work using async Django views and nothing more.
uvicorn djangoAsync.asgi:application --reload --debug --ws websockets
general views for websocket views, template views, etc
main websocket logic, low level stuff like getting messages, sending them and handling errors.
also, middleware that needed for websockets views is here.
example of websockets using aiohttp and aiohttp requests with a bit complex logic.