Как объединить Django WebSockets "websocket_urlpatterns" (путь) нескольких приложений в проекте URLRouter?
У меня есть несколько приложений, и все они используют "WebSockets (routing.py)", и у меня есть routing.py в моем проекте и приложениях.
Я могу добавить "websocket_urlpatterns" только одного приложения в URLRouter
, если я пытаюсь добавить другие "websocket_urlpatterns" в URLRouter
, это не работает и я получаю ошибку.
Проект routing.py
from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
import django_chatter.routing
import app1.routing
import os
from time import sleep
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myProject.settings")
application = ProtocolTypeRouter({
'websocket': AuthMiddlewareStack(
URLRouter(
app1.routing.websocket_urlpatterns # send request to chatter's urls
)
)
})
App1 routing.py
from django.urls import path
from django_chatter import consumers
import app1.consumers
websocket_urlpatterns = [
path('ws/route1/' , app1.consumers.Consumer1.as_asgi()),
path('ws/route2/' , app2.consumers.Consumer2.as_asgi()),
path('ws/route3/' , app3.consumers.Consumer3.as_asgi()),
]
App2 routing.py
from django.urls import path
from . import consumers
websocket_urlpatterns = [
path('ws/chatter/chatrooms/<str:room_uuid>/', consumers.ChatConsumer.as_asgi()),
path('ws/chatter/users/<str:username>/', consumers.AlertConsumer.as_asgi())
]