Игорь Надеин 49b0231688 refactor(websocket): создано приложение realtime для унификации WebSocket
- Создано новое Django приложение realtime
- UserConsumer перенесен из communications в realtime
- Объединена функциональность чатов и уведомлений в одном consumer
- Обновлен asgi.py для использования realtime.routing
- Добавлена подписка на канал уведомлений (notifications_{user_id})
- Ping interval изменен на 20 секунд для лучшего keepalive
- Создан README.md с документацией по архитектуре

Улучшения архитектуры:
- Separation of Concerns: WebSocket логика отделена от бизнес-логики
- Single Responsibility: realtime отвечает только за real-time
- Расширяемость: легко добавлять новые real-time фичи
- Одно WebSocket соединение вместо двух (чаты + уведомления)
2025-12-03 12:44:21 +03:00

20 lines
585 B
Python

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "eusrr_backend.settings")
from django.core.asgi import get_asgi_application
django_asgi_app = get_asgi_application()
from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
from realtime.routing import websocket_urlpatterns
from eusrr_backend.channels_jwt import JWTAuthMiddleware
application = ProtocolTypeRouter({
"http": django_asgi_app,
"websocket": JWTAuthMiddleware(
AuthMiddlewareStack(
URLRouter(websocket_urlpatterns)
)
),
})