Django channels. подписка на канал определенного пользователя в receive_json
в JsonWebsocketConsumer
я использую этот код для подписки сокета определенного пользователя (который не является текущим сокетом) на сообщения из нового диалога
def receive_json()
# ...
async_to_sync(self.channel_layer.group_add)(f'dialog-{dialog_id}', f'user-{dialog.answerer.id}')
# ...
но это не работает, потому что я не могу просто установить имя_канала таким образом:
def connect(self):
self.channel_name = f'user-{self.scope["user"].id}'
могу ли я как-то подписать сокет другого пользователя на группу, имея user_id?
для достижения пользовательского имени_канала я просто добавляю это в мой класс потребителя
@property
def channel_name(self):
return f'user-{self.scope["user"].id}'
@channel_name.setter
def channel_name(self, name):
pass
# this setter is necessary so that an exception is not throwed when creating a channel