Python Django通道自定义身份验证关闭旧连接同步仅限操作异常

Python Django通道自定义身份验证关闭旧连接同步仅限操作异常,python,django,authentication,websocket,channels,Python,Django,Authentication,Websocket,Channels,我尝试从实现CustomAuthentication,但每次尝试建立websocket连接时都会出现SynchronousOnlyOperation异常。我错过了什么 我试图使用channels.db中的database\u sync\u to \u async,但是,即使使用wait,我仍然坚持使用一个corroutine对象作为返回值。也许有人知道我做错了什么 软件包版本: Python 3.6.9 Django 3.0.2 ASGI/通道2.4.0 达芙妮2.4.1 asgiref 3.

我尝试从实现CustomAuthentication,但每次尝试建立websocket连接时都会出现SynchronousOnlyOperation异常。我错过了什么

我试图使用
channels.db中的
database\u sync\u to \u async
,但是,即使使用
wait
,我仍然坚持使用一个corroutine对象作为返回值。也许有人知道我做错了什么

软件包版本:

  • Python 3.6.9
  • Django 3.0.2
  • ASGI/通道2.4.0
  • 达芙妮2.4.1
  • asgiref 3.2.3
  • 通道redis 2.4.1
数据库:

  • sqlite3
执行:

python3 manage.py运行服务器

文件:

设置.py

[…]
ASGI_应用程序='backend.routing.APPLICATION'
通道_层={
“默认值”:{
“后端”:“channels\u redis.core.RedisChannelLayer”,
“配置”:{
'主机':[('127.0.0.1',6379)]
},
},
}
[...]
routing.py(应用程序)

from channels.routing导入协议类型路由器,URLRouter
导入backend.api.routing作为路由
从backend.api.auth导入ticketuthmiddleware
应用程序=协议类型路由器({
“websocket”:ticketuthmiddleware(
URLRouter(
route.websocket\urlpatterns
)
)
})
routing.py(url)

从django.url导入重新路径
从backend.api.consumers导入OwnConsumer
websocket\u urlpatterns=[
重新设置路径(r'',所有者用户)
]
消费者.py

从channels.generic.websocket导入WebsocketConsumer
导入json
类别OwnConsumer(WebsocketConsumer):
def连接(自):
self.accept()
def断开连接(自身、关闭_代码):
打印(“断开”,关闭\u代码)
auth.py

从django.db导入关闭旧连接
类ticketuthmiddleware:
定义初始化(自,内部):
self.inner=内部
定义调用(自身,范围):

close_old_connections()#目前这是一个有文档记录的问题,显然Django 3:
(解决方案在里面)。

目前这是一个记录在案的问题,显然Django 3:
(解决方案在里面)。

您正在使用哪个数据库?我正在使用sqlite3您正在使用哪个数据库?我正在使用sqlite3