我这个功能是为了发消息时通过websocket发送给对方并且把消息内容存到数据库但是出现如下与异步有关的报错我对这方面不是很了解,有没有好兄弟帮我看看
代码如下
async def websocket_application(scope,receive,send):
while True:
event = await receive()
#收到建立Websocket连接的消息
if event['type']=='websocket.connect':
await send({'type':'websocket.accept'})
#得到auth
query_sring = scope['query_string'].decode()
qs = urllib.parse.parse_qs(query_sring)
auth = qs.get('auth',[''])[0]
CONNECTIONS[auth] =send
# 收到中断Websocket连接的消息
elif event['type']=='websocket.disconnect':
break
#其他情况,正常的websocket消息
elif event['type'] == 'websocket.receive':
receive_msg = json.loads(event['text'])
# print(receive_msg)
to_user = receive_msg.get('to_user', '')
if to_user in CONNECTIONS:
message_type = receive_msg.get('message_type', 'data')
content = receive_msg.get('message', '')
msg = message(auth, message_type, content,to_user)
await CONNECTIONS[to_user](msg)
else:
# msg = message('system', 'text', '对方已下线或不存在',to_user)
# await send(msg)
await models.Messages.objects.create(
PostMessages=receive_msg.get('message', ''),
status=0,
SendTime=time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()),
MessagesTypeID=1,
FromUserID=auth,
ToUserID=to_user
)
else:
pass
print('[disconnect]')