Django Channels прямые сообщения по каналам

У меня есть базовая настройка, где пользователь подключается к серверу, я сохраняю имя_канала в DB.

А затем я пытаюсь отправить сообщение подключенным пользователям.

    class CommandConsumer(WebsocketConsumer):
   
    def connect(self):
        Client.objects.create(user=self.scope['user'],channel_name=self.channel_name)
        self.accept()

    def disconnect(self, close_code):
        # Leave room group
        #self.channel_layer.group_discard(self.room_group_name, self.channel_name)
        Client.objects.filter(channel_name=self.channel_name).delete()

    # Receive message from WebSocket

    def receive(self, text_data):
        destination_clients=Client.objects.filter(user_id__in=userstatuse_userids)
        print(destination_clients)

        /****self.send(text_data=json.dumps({"type": "chat.message","command":command,"request":request,"response":clubs_data}))
This line works as message is sent to the owner of that channel, the person who sent the message *****//
        
        for each_user in destination_clients:
            /*this line however does not send the message to anyone*/
            self.channel_layer.send(each_user.channel_name, {"type": "chat.message","text":"test"})
                
    def chat_message(self, event):   
        # Send message to WebSocket
        print("Chat message")
        self.send(text_data=json.dumps(event))

Я проверил имена каналов, распечатав их, и они совпадают, так что я не отправляю на неправильные каналы.

Функция сообщений чата никогда не вызывается.

обязательно ли весь потребитель должен быть асинхронным?

Я не хочу реализовывать это с помощью групп. На их сайте есть пример, но я не смог заставить его работать.

https://channels.readthedocs.io/en/stable/topics/channel_layers.html

Вернуться на верх