Django-channels: почему сообщение отправляется всем, а не одному пользователю?
Всем привет. Я создаю WebRTC приложение для видеочата. У меня есть функция удержания пользователя на линии, которая отлично работает: я нажимаю кнопку, сигнал идет на сервер, сервер посылает его пользователю с помощью self.channel_layer.send(), пользователь получает alert() и ставится на удержание. Но когда я хочу снять его с удержания, сервер посылает сигнал всем в комнате, несмотря на то, что все параметры те же, что и в функции "hold". Удержание пользователя:
if action == 'onhold': #holding user
await self.channel_layer.send(
list(usersChannels.keys())[list(usersChannels.values()).index(message['peer'])], #channel to hold
{
'type': 'channel_message',
'action': 'onhold',
'room': 'room',
'message': {message['peer']: '1'},
}
)
return
Удержание пользователя:
if action == 'unhold': # unholding user
await self.channel_layer.send(
list(usersChannels.keys())[list(usersChannels.values()).index(message['peer'])], # channel to unhold
{
'type': 'channel_message',
'action': 'unhold',
'room': 'room',
'message': {message['peer']: '1'},
}
)
return
Полный код здесь: https://pastebin.com/CicsUhy4 (извините за "грязность"). Я очень новичок в каналах, поэтому любая подсказка будет благословением. Извините за плохой английский. Спасибо.