Как вызвать другую функцию websocket в потребительских функциях каналов django?

У меня есть следующий код в consumers.py

from channels.consumer import SyncConsumer
from asgiref.sync import async_to_sync

class EchoConsumer(SyncConsumer):
    def websocket_connect(self,event):
        self.room_name = 'broadcast'
        self.send({
            'type':'websocket.accept'
        })
        async_to_sync(self.channel_layer.group_add(self.room_name, self.channel_name))
        print(f'[{self.channel_name}] - you are connected')

    def websocket_receive(self,event):
        print(f'[{self.channel_name}] - Recieved message - {event["text"]}')
        async_to_sync(self.channel_layer.group_send)(
            self.room_name,
            {
                'type': 'websocket.message',
                'text': event.get('text')
            }
        )

    def websocket_message(self,event):
        print(f'[{self.channel_name}] - message Sent - {event["text"]}')
        self.send({
            'type':'websocket.send',
            'text':event.get('text')
        })
    
    def websocket_disconnect(self,event):
        print(f'[{self.channel_name}] - disconnected')
        print('connection is disconnected')
        async_to_sync(self.channel_layer.group_discard(self.room_name, self.channel_name))
    

Я хочу вызывать функцию message каждый раз, когда сообщение получено, поэтому в функции websocket_recieve я добавил 'type': 'websocket.message', но я не знаю, почему функция websocket_message не вызывается?

Я новичок в django channels.Сообщение успешно принимается от любого соединения, но не отправляется ни на одно соединение.

любая помощь будет оценена по достоинству.

измените функцию websocket_connect на эту

def websocket_connect(self,event):
        self.room_name = 'broadcast'
        self.send({
            'type':'websocket.accept'
        })
        async_to_sync(self.channel_layer.group_add)(self.room_name, self.channel_name)
        print(f'[{self.channel_name}] - you are connected')
Вернуться на верх