settings.py配置
ASGI_APPLICATION = 'django3.asgi.application'
asgi.py中
import os
from django.core.asgi import get_asgi_application
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.auth import AuthMiddlewareStack
import app.routing
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django3.settings')
application = ProtocolTypeRouter({
"http": get_asgi_application(),
"websocket": AuthMiddlewareStack(URLRouter(app.routing.websocket_urlpatterns))
})
app下的routing.py
from django.urls import path
from .consumers import ChatConsumer
websocket_urlpatterns = [
path('ws/chat/', ChatConsumer.as_asgi()), # 此处要加.as_asgi()
]
注:其它配置参考
django2.2和channels2.1.7实现websocket通信