- 配置 ASGI 支持 WebSocket 连接 - 新增 WebSocket 路由和消费者类 MegCenter - 实现消息序列化和推送逻辑 - 前端集成 WebSocket 连接状态管理和重连机制 - 添加用户在线状态提示和未读消息提醒- 更新角色权限配置显示条件 - 扩展用户信息存储结构支持 WebSocket 状态字段
33 lines
985 B
Python
33 lines
985 B
Python
"""
|
|
ASGI config for application project.
|
|
|
|
It exposes the ASGI callable as a module-level variable named ``application``.
|
|
|
|
For more information on this file, see
|
|
https://docs.djangoproject.com/en/3.2/howto/deployment/asgi/
|
|
"""
|
|
|
|
import os
|
|
|
|
from channels.auth import AuthMiddlewareStack
|
|
from channels.routing import ProtocolTypeRouter, URLRouter
|
|
from channels.security.websocket import AllowedHostsOriginValidator
|
|
from django.core.asgi import get_asgi_application
|
|
|
|
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'application.settings')
|
|
os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = "true"
|
|
|
|
http_application = get_asgi_application()
|
|
from application.ws_routing import websocket_urlpatterns
|
|
|
|
application = ProtocolTypeRouter({
|
|
"http": http_application,
|
|
'websocket': AllowedHostsOriginValidator(
|
|
AuthMiddlewareStack(
|
|
URLRouter(
|
|
websocket_urlpatterns # 指明路由文件是devops/routing.py
|
|
)
|
|
)
|
|
),
|
|
})
|