"""ASGI entry point. HTTP is Django as usual. The websocket carries presence and the document deltas the server broadcasts after a write — never writes, which stay on HTTP. See docs/architecture.md, Collaboration. """ import os from django.core.asgi import get_asgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "server.settings") django_asgi_app = get_asgi_application() from channels.auth import AuthMiddlewareStack # noqa: E402 from channels.routing import ProtocolTypeRouter, URLRouter # noqa: E402 from channels.security.websocket import AllowedHostsOriginValidator # noqa: E402 from clips.routing import websocket_urlpatterns # noqa: E402 application = ProtocolTypeRouter({ "http": django_asgi_app, "websocket": AllowedHostsOriginValidator( AuthMiddlewareStack(URLRouter(websocket_urlpatterns)) ), })