参考
下载
pip install channels==2.3
pip install -i https://pypi.doubanio.com/simple/ channels==2.3
# 这里我的Django版本是1.11
pip install django==1.11
注意:
- 建议安装channels的版本是2.3,别问照着做就对了
- 建议Python解释器版本是3.6
Django实现websocket
- 引入channels
settings.py
python
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config',
'channels', # 注册 channels
]
本质:channels会把原来只支持HTTP协议的wsgi替换为支持HTTP和websocket写的asgi
- 配置application
settings.py
# 配置ASGI的路径
ASGI_APPLICATION = "channel_demo.routing.application"
本质:这个路径指向的是项目配置文件夹下的routing
文件中的application
变量。也就是说我们需要创建一个routing文件。 routing.py
python
from channels.routing import ProtocolTypeRouter, URLRouter
from django.conf.urls import url
application = ProtocolTypeRouter({
'websocket': URLRouter([
# 所有需要使用websocket请求的都写在下面的URL中
# url()
])
})