Python + socket-io дождаться ответа от клиента
На сервере python есть задача с циклом for и модулем socket-io Main:
from aiohttp import web
import asyncio, socketio, time
from task import tasks
sio = socketio.AsyncServer(async_handlers=True)
app = web.Application()
sio.attach(app)
@sio.on('connect')
async def connect_handler(sid, environ):
print("Connected: " , sid)
@sio.on('py:task_launch')
async def task_launch_handler(sid, data):
#Запускаем задачу
asyncio.create_task(task(data, sio)
Task: ( файл с проблемой )
async def task(data, sio):
...
BASE_SLICE = []
...
for _ in iter(int, 1):
...
...
...
# Отправляем клиенту данные
await sio.emit('py:get_users', {'data': data})
# Получаем данные от клиента
@sio.on('py:get_slice_users')
async def get_slice_users_handler(sid, data):
BASE_SLICE.append(data[0])
Код после получения данных от клиента
...
...
Можно ли как то реализовать что бы сервер дождался ответа от клиента без await asyncio.sleep(sec) и только после этого продолжил выполнять цикл, если весь нижний код вложить в фукнцию get_slice_users_handler, то цикл соответственно пропускает слушателя @sio.on('py:get_slice_users') и переходит к след. итерации