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

Я хочу отправлять случайно сгенерированное сообщение каждому клиенту, посещающему страницу. На данный момент я могу подключить только одного клиента. Когда я пытаюсь подключиться с другой вкладки, выдает ошибку.

Как я уже сказал, одно соединение работает, но моя цель - иметь несколько соединений, которые получают одно и то же сообщение.

Application instance <Task pending name='Task-173' coro=<StaticFilesWrapper.__call__() running at /Users/username/React/app/venv/lib/python3.9/site-packages/channels/staticfiles.py:44> wait_for=<Future pending cb=[_chain_future.<locals>._call_check_cancel() at /usr/local/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/futures.py:384, <TaskWakeupMethWrapper object at 0x10c15c5e0>()]>> for connection <WebSocketProtocol client=['127.0.0.1', 50618] path=b'/ws/dice'> took too long to shut down and was killed.

Мой Consumers.py выглядит следующим образом:

import json
from random import randrange
from channels.generic.websocket import JsonWebsocketConsumer
from asgiref.sync import async_to_sync
from datetime import *
import time


class DiceConsumer(JsonWebsocketConsumer):

    def connect(self, immediately=True):
        self.room_group_name = 'example_room'
        self.accept()

        while True:
            if datetime.now().strftime('%S') != '00':
                self.send(
                    json.dumps({'action': "nothing", 'time': datetime.now().strftime('%S')}))
            elif datetime.now().strftime('%S') == '00':

                self.send(json.dumps(
                    {'action': "start dice", 'winning_value': randrange(1, 6)}))
            time.sleep(1)

    def disconnect(self, code):
        return super().disconnect(code)

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