2026-09-07 19:43:48 +03:00

37 lines
1.1 KiB
Python

import os
from importlib import import_module
from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.security.websocket import AllowedHostsOriginValidator, OriginValidator
from django.conf import settings
from django.core.asgi import get_asgi_application
from eusrr_backend.logging_utils import WebSocketLoggingMiddleware
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "eusrr_backend.settings")
django_asgi_app = get_asgi_application()
JWTAuthMiddleware = import_module("eusrr_backend.channels_jwt").JWTAuthMiddleware
websocket_urlpatterns = import_module("realtime.routing").websocket_urlpatterns
websocket_application = AuthMiddlewareStack(
JWTAuthMiddleware(URLRouter(websocket_urlpatterns))
)
if settings.WEBSOCKET_ALLOWED_ORIGINS:
websocket_application = OriginValidator(
websocket_application,
settings.WEBSOCKET_ALLOWED_ORIGINS,
)
else:
websocket_application = AllowedHostsOriginValidator(websocket_application)
application = ProtocolTypeRouter(
{
"http": django_asgi_app,
"websocket": WebSocketLoggingMiddleware(websocket_application),
}
)