python - 如何在 django-channels 中使用多个路由文件?
问题描述
我正在制作一个项目,其中我在两个不同的应用程序中使用通道。但是如何为每个应用程序制作两个不同的路由文件
import os
from channels.routing import ProtocolTypeRouter,URLRouter
from django.core.asgi import get_asgi_application
from channels.http import AsgiHandler
from channels.auth import AuthMiddlewareStack
from consultation import routings as consultation_routings
from chat import routings as chat_routings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'sqh.settings._base')
application = ProtocolTypeRouter({
"http":AsgiHandler(),
"websocket":AuthMiddlewareStack(
URLRouter(
consultation_routings.websocket_urlpatterns,
chat_routings.websocket_urlpatterns,
)
)
})
当我在 asgi.py 中向 URLRouter 添加第二个路由文件地址时,它会引发以下错误:
URLRouter(
TypeError: __init__() takes 2 positional arguments but 3 were given
解决方案
推荐阅读
- asp.net-core - 如何以编程方式重定向到剃刀代码中的调用者?
- tcp - 如何启用公共访问端口?
- javascript - 如何在类构造函数中使用 join() 方法?
- ios - 在objective-c中调用实例成员
- python - Scrapy 1.8.0 返回错误 500,但 Python 代码返回成功 200
- java - 在 IntelliJ IDEA 的非 Android 项目中使用 joda-time 的 IOException
- c# - 在 C# 中将 URL 与变量连接起来
- php - 在 hasManyThrough 关系之后附加另一个表
- kubernetes - k8s:获取对 pod 的访问权限
- excel - 单个单元格可以用作带有分隔符的列表吗?