Задать вопрос
@Chainsaw2100

Django-channels: Почему сообщение отправляется всем пользователям, вместо одного?

Здравствуйте, подскажите пожалуйста.
Делаю видеочат на Django и WebRTC, и у меня есть функция установки пользователя на удержание.
Функция работает отлично, админ нажимает на кнопку, пользователю по каналу через функцию self.channel_layer.send() отправляется сигнал, у того на экране появляется alert() и он ставится на удержание.
Однако, когда я убираю его с удержания, сигнал, отправляющийся по тому же адресу, приходит всем пользователям, хотя канал указан тот же, что и в предыдущем разе.
Функция удержания:
if action == 'onhold':  # поставили на удержание
            await self.channel_layer.send(
                list(usersChannels.keys())[list(usersChannels.values()).index(message['peer'])], #канал на удержание
                {
                    'type': 'channel_message',
                    'action': 'onhold',
                    'room': 'room',
                    'message': {message['peer']: '1'},
                }
            )
            return

Функция снятия:
if action == 'unhold':  # убрали с удержания
            await self.channel_layer.send(
                list(usersChannels.keys())[list(usersChannels.values()).index(message['peer'])],
                {
                    'type': 'channel_message',
                    'action': 'unhold',
                    'room': 'room',
                    'message': {message['peer']: '1'},
                }
            )
            return

Весь код: https://pastebin.com/CicsUhy4 (извиняюсь за корявость)
Даже примерно не понимаю, в чем причина. В Channels новичок, буду рад любым подсказкам.
  • Вопрос задан
  • 97 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы