Я хочу написать http сервер с сокетом io. Что мне нужно:
request --> socket io ask -> socket io answer -> response
По запросу http я отправляю сообщение клиенту сокета io и жду ответного сообщения от сокета io. Затем отправьте это сообщение в виде ответа http или тайм-аута. Вот «начало работы» кода, который я хочу принять.
from aiohttp import web
import socketio
sio = socketio.AsyncServer()
app = web.Application()
sio.attach(app)
async def index(request):
sio.emit('ask', 'some data')
# here I want wait socket io answer
return web.Response(..., content_type='text/plain')
@sio.on('connect', namespace='/chat')
def connect(sid, environ):
print("connect ", sid)
@sio.on('answer', namespace='/chat')
async def answer(sid, data):
# here I want send response to index or timeout
...
@sio.on('disconnect', namespace='/chat')
def disconnect(sid):
print('disconnect ', sid)
app.router.add_get('/', index)
if __name__ == '__main__':
web.run_app(app)
Я не понимаю, как связать часть http с сокетом io