diff --git a/umap/asgi.py b/umap/asgi.py index 00487a9c..f81d24d3 100644 --- a/umap/asgi.py +++ b/umap/asgi.py @@ -1,7 +1,10 @@ import os -from channels.routing import ProtocolTypeRouter +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 +from django.urls import re_path os.environ.setdefault("DJANGO_SETTINGS_MODULE", "umap.settings") # Initialize Django ASGI application early to ensure the AppRegistry @@ -12,5 +15,14 @@ application = ProtocolTypeRouter( { "http": django_asgi_app, # Just HTTP for now. (We can add other protocols later.) + "websocket": AllowedHostsOriginValidator( + AuthMiddlewareStack( + URLRouter( + [ + re_path(r"^ws/$", consumers.AsyncChatConsumer.as_asgi()), + ] + ) + ) + ), } )