Почему group_send() не публикует сообщения

Я работаю с каналами django. У меня есть класс consumer, соединение с ним также установлено. но group_send() сообщения не принимаются. вот consumer

class EchoConsumer(AsyncWebsocketConsumer):
    async def connect(self):
        await self.accept()
        logger.info(f" echo echo..  ")

        self.channel_layer.group_add("ks", self.channel_name)

    async def disconnect(self, close_code):
        self.channel_layer.group_discard("ks", self.channel_name)
        logger.info(f"ti ti tiiin")

        self.close()

    async def receive(self, text_data):
        text_data_json = json.loads(text_data)
        message = text_data_json["message"]
        logger.info(message)

        await self.channel_layer.group_send(
            "ks",
            {
                "type": "group.message",
                "message": message,
            },
        )

    async def group_message(self, event):
        logger.info(event["message"])
        message = event["message"]

        await self.send(text_data=json.dumps({"message": message}))


здесь конфигурация канального уровня

CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "channels_redis.core.RedisChannelLayer",
        "CONFIG": {
            "hosts": ["redis://" + REDIS_HOST + ":" + REDIS_PORT + "/1"],
        },
    },
}
# chaches
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": f"redis://{REDIS_HOST}:{REDIS_PORT}/3",  # Use a different database (e.g., 1)
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        },
    },
}

Я также проверил, есть ли проблема в моем канальном слое или нет. Там тоже нет проблем .

(env) komal@phoenix:~/Documents/gle/server$ python manage.py shell
Python 3.11.4 (main, Dec  7 2023, 15:43:41) [GCC 12.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from channels.layers import get_channel_layer
>>> channel_layer = get_channel_layer()
>>> channel_layer.group_send("ks" , {"message":"I am working"})
<coroutine object RedisChannelLayer.group_send at 0x7fb2b0167ca0>
>>> 

Вот журналы для решения проблемы

WebSocket HANDSHAKING /ws/echo/ [127.0.0.1:38026]
WebSocket HANDSHAKING /ws/echo/ [127.0.0.1:38026]
WebSocket CONNECT /ws/echo/ [127.0.0.1:38026]
WebSocket CONNECT /ws/echo/ [127.0.0.1:38026]
 echo echo..  
WebSocket HANDSHAKING /ws/echo/ [127.0.0.1:38032]
WebSocket HANDSHAKING /ws/echo/ [127.0.0.1:38032]
WebSocket CONNECT /ws/echo/ [127.0.0.1:38032]
WebSocket CONNECT /ws/echo/ [127.0.0.1:38032]
 echo echo..  
hello

нет вывода во фронтенде тоже, то есть мой другой клиент не получает. Я перепробовал большинство источников в Интернете и не нашел, почему group_send() не работает. Любая помощь будет оценена по достоинству. редактировать сторона клиента

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>WebSocket Chat</title>
    <style>
      /* Add your CSS styles here */
    </style>
  </head>
  <body>
    <div id="chat">
      <!-- Chat messages will be displayed here -->
    </div>
    <input type="text" id="messageInput" placeholder="Type a message..." />
    <button id="sendButton">Send</button>

    <script>
      const socket = new WebSocket("ws://localhost:8000/ws/echo/");

      socket.onopen = () => {
        console.log("WebSocket connection established.");
      };

      socket.onmessage = (event) => {
        const message = JSON.parse(event.data).message;
        appendMessageToChat(message);
      };

      socket.onclose = () => {
        console.log("WebSocket connection closed.");
      };

      document.getElementById("sendButton").addEventListener("click", () => {
        const messageInput = document.getElementById("messageInput");
        const message = messageInput.value.trim();
        if (message !== "") {
          socket.send(JSON.stringify({ message }));
          messageInput.value = ""; // Clear input field after sending
        }
      });

      function appendMessageToChat(message) {
        const chat = document.getElementById("chat");
        const messageElement = document.createElement("div");
        messageElement.textContent = message;
        chat.appendChild(messageElement);
      }
    </script>
  </body>
</html>

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