Проблема уведомления об отключении каналов Django
Я работаю над проектом, в котором мы используем каналы Django. Мы должны отправлять уведомление в комнату, если кто-то из пользователей отключается. Для начала каждая комната будет ограничена только 2 пользователями. У меня есть служебная функция внутри websocket_disconnect()
, чтобы отправлять сообщения в комнату для уведомления других пользователей.
Проблема в том, что уведомление отправляется для всех запросов, даже когда пользователь отправляет сообщение (используя receive_json(), send_json()
). Здесь сообщение отправляется, но все равно срабатывает функция send_external_msg_to_channel()
из websocket_disconnect()
.
Я использую AsyncJsonWebsocketConsumer
. Фронтенд использует пакет reconnecting-websocket.
class CustomConsumer(AsyncJsonWebsocketConsumer):
async def websocket_disconnect(self, message):
print("disconnecting")
await send_external_msg_to_channel(self.room_name, {"type": "send_json", "event": "disconnect"})
return await super().websocket_disconnect(message)