Django Websocket: Все сообщения отправляются после завершения цикла

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

Это функция обратного отсчета

async def init_starting(self):
    if not self.lobby.status == "waiting":
        print("Already Started")
        return False
    else:
        print("Starting Countdown")

        self.lobby.status = 'starting'
        await self.save_lobby()

        await self.send_status_message_with_status(status='starting', data={'has_started': self.lobby.has_started,
                                                                            'host': self.host.username,
                                                                            'players': self.players,
                                                                            'lobby_code': self.lobby_code,
                                                                            'countdown': 3})

        countdown = 3
        while countdown >= 0: # here are the messages not sent instant but after the loop is finished (with my current approach they are sent instant but i cant await it
            countdown_data = {
                'countdown': countdown
            }
            await self.send_status_message_with_status(status='starting', data=countdown_data)

            countdown -= 1
            await asyncio.sleep(1)

        self.lobby.status = 'started'
        await self.save_lobby()
        await self.send_status_message_with_status(status='started', data={
            'message': "Test"
        })

        return True

Вот я сейчас приступаю к выполнению задания

if "command" in text_data_json:
        command = text_data_json['command']

        match command:
            case 'start':
                loop = asyncio.get_running_loop()
                start_task1 = loop.create_task(self.init_starting()) # here i would like to await the task but when i do it they are not sent instant


            case _:
                print("Code not found")

Заранее спасибо за любую помощь!

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