Django Channels是一个基于Django的扩展, 用于处理WebSockets, 长轮询和触发器事件等实时应用程序.
它允许Django处理异步请求, 并提供了与其他WebSockets库集成的功能.
当我们在Django Channels中使用ASGI_APPLICATION设置时,
我们可以指定一个新的ASGI应用程序来处理ASGI请求.
这样, 我们可以针对不同的请求类型使用不同的应用程序逻辑.
![2024-06-10_013556](https://img-blog.csdnimg.cn/img_convert/7d45c74329a66afa50cad8ea4dfb0173.png)
使用pip install channels的话会自动下载比较高的版本(4.x),
在注册channels的时候, Django的settings.py中ASGI_APPLICATION没有被配置识别,
启动项目的时候没有使用ASGI, 而是使用WSGI.
# WSGI启动如下:
System check identified no issues (0 silenced).
June 10, 2024 - 01:30:05
Django version 4.2, using settings 'MyDjango.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
![2024-06-10_013007](https://img-blog.csdnimg.cn/img_convert/995bad2ff7eb6f4f565dce156fc7c1f3.png)
解决方案: 降低版本.
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple channels==3.0.4
![2024-06-10_012835](https://img-blog.csdnimg.cn/img_convert/b53e43945d16da6744112ddacde75e2d.png)
# ASGI启动如下:
System check identified no issues (0 silenced).
June 10, 2024 - 01:10:21
Django version 4.2, using settings 'MyDjango.settings'
Starting ASGI/Channels version 3.0.4 development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.