- Создано новое 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 соединение вместо двух (чаты + уведомления)
15 lines
487 B
Python
15 lines
487 B
Python
# realtime/routing.py
|
|
"""
|
|
WebSocket URL routing for real-time features.
|
|
All WebSocket connections are handled through this routing.
|
|
"""
|
|
from django.urls import re_path
|
|
|
|
from .consumers import UserConsumer
|
|
|
|
websocket_urlpatterns = [
|
|
# Универсальный WebSocket для пользователя
|
|
# Обрабатывает: чаты, уведомления, бейджи, онлайн-статус и др.
|
|
re_path(r"^ws/$", UserConsumer.as_asgi(), name="ws_user"),
|
|
]
|