Каналы Django, как проверить, существует ли группа в канальном слое? - PullRequest
0 голосов
/ 24 мая 2019

У меня есть фрагмент кода (потребитель канала django), который создает отдельную группу для каждого подключенного пользователя. как это

@login_required_connection
async def connect(self):
    await self.channel_layer.group_add(
        self.user.id,
        self.channel_name
    )
    await self.accept()

Все, что предназначено для этого пользователя, передается в его группу со стороны django, и потребитель передает его ему.

Проблема в том, что, если соединение разрывается на минуту, а затем снова подключается, пользователь не получает ничего в течение этого времени.

Что я хочу сделать (пожалуйста, предложите лучший подход, если таковой имеется), - сохранить данные для пользователя в redis и отправить все данные при повторном подключении.

Мой вопрос: как я могу проверить, существует группа для пользователя или нет? так что я могу сохранить данные в кеш, если не существует.

ПРИМЕЧАНИЕ В настоящее время я поддерживаю статус online / offline в redis. (Когда пользователь подключается, поместите для него ключ и удалите при отключении). Но я просто хочу проверить, существует группа или нет.

...