Как объединить 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())
]
Вернуться на верх