Django: Запрос к базе данных от потребителей каналов
У меня есть приложение Django, в котором работает чат. Теперь я пытаюсь добавить запрос к базе данных в методе connect
. Я следую документации по Channels и пробовал решение в этом другом вопросе на StackOverflow , но ничего не работает.
Ниже приведен мой код. В консоли Javascript я вижу ошибку `WebSocket connection to 'ws://localhost:9008/ws/chat/334/' failed: WebSocket закрыт до установления соединения. У меня есть redis-сервер, запущенный на localhost, и он работал раньше, так что это не проблема.
async def connect(self):
print('connect (got here!)')
self.room_name = self.scope['url_route']['kwargs']['room_name']
self.room_group_name = 'chat_%s' % self.room_name
print('self.room_name: ' + str(self.room_name))
valid_connection = await database_sync_to_async(self.verify_chat_room_key)()
print('valid_connection: ' + str(valid_connection))
# Join room group
# async_to_sync(self.channel_layer.group_add)(
# self.room_group_name,
# self.channel_name
# )
await self.accept()
def verify_chat_room_key(self):
print('~~~in verify method...~~~')
return True
Редактирование: Ниже приведен стектрейс, показывающий отладки python:
HTTP GET /confirmed-trade/334/ 200 [1.28, 127.0.0.1:53877]
WebSocket HANDSHAKING /ws/chat/334/ [127.0.0.1:58882]
HTTP GET /static/favicon.png 200 [0.01, 127.0.0.1:53877]
WebSocket HANDSHAKING /ws/chat/334/ [127.0.0.1:59246]
WebSocket DISCONNECT /ws/chat/334/ [127.0.0.1:59246]
disconnect
WebSocket HANDSHAKING /ws/chat/334/ [127.0.0.1:65175]
WebSocket DISCONNECT /ws/chat/334/ [127.0.0.1:58882]
disconnect
WebSocket DISCONNECT /ws/chat/334/ [127.0.0.1:65175]
disconnect