@cartiology

Как запустить Websocket паралельно с ботом телеграм aiogram?

У меня возникла ошибка при попытке скрестить паралельно WebSocket и телеграм бота написанный на Aiogram. У меня была жалкая попытка сделать всё через threading, но ожидаемо ничего не сработало. Вот код который должен запускать оба процесса:
if __name__ == '__main__':
    #бот
    executor.start_polling(dp, skip_updates=True)
    #websocket
    event_loop = asyncio.get_event_loop()
    event_loop.run_until_complete(start_server())
    event_loop.run_forever()


Насколько я могу предпологать это происходит потому что оба процесса после запуска не оканчиваются и действуют далее, по этой причине код не доходит до запуска и прослушивания сокета

Ниже код сокета
async def new_client_connected(client_socket,path):
  print("New Client")
  while True:
    new_message = await client_socket.recv()
    print(new_message)

async def start_server():
  print("Server Started")
  await websockets.serve(new_client_connected, "localhost",1234)


А тут инициализация бота
bot = Bot(token=TOKEN)
storage = MemoryStorage()
dp = Dispatcher(bot=bot, storage=storage)
logging.basicConfig(level=logging.INFO)
  • Вопрос задан
  • 563 просмотра
Решения вопроса 1
@AlbertForest
async def start_bot():
    event_loop.create_task(dp.start_polling())
    
if __name__ == '__main__':
    event_loop = asyncio.get_event_loop()
    event_loop.run_until_complete(start_server())
    event_loop.run_until_complete(start_bot())
    event_loop.run_forever()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы