Задать вопрос
@Deeffyy

AttributeError: 'ASGIApp' object has no attribute 'handle_request'?

При попытке подключения к socket.io питон выдает ошибку:
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
  File "/usr/local/lib/python3.10/dist-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
    return await self.app(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/engineio/async_drivers/asgi.py", line 68, in __call__
    await self.engineio_server.handle_request(scope, receive, send)
AttributeError: 'ASGIApp' object has no attribute 'handle_request'
INFO:     :0 - "GET /socket.io/?EIO=4&transport=websocket HTTP/1.0" 500 Internal Server Error


Сервер:
sio_server = socketio.AsyncServer(
    async_mode='asgi',
    logger=True,
    engineio_logger=True
)

sio_app = socketio.ASGIApp(
    socketio_server=sio_server,
    socketio_path='/ws/socket.io'
)

@sio_server.on('start')
async def start(sid):
    await sio_server.emit('start', {'data': 'Started'})

@sio_server.event
async def ping_from_client(sid):
    await sio_server.emit('pong_from_server', {'data': 'pong'})

@sio_server.on('connect')
async def connect(sid, environ, auth):
    # код для дальнейшей авторизации


подключение к fastapi:
app.add_middleware(
     CORSMiddleware,
     allow_origins=origins,
     allow_credentials=True,
     allow_methods=["*"],
     allow_headers=["*"],
)

app_to_start = socketio.ASGIApp(sio_app, app)
app.mount("/ws/socket.io", sio_app)


запускаю app_to_start, пытаюсь подключиться через
client = socketio.AsyncClient()
await client.connect('ws://host/ws/socket.io', transports=['websocket'],headers={'Authorization': 'Bearer XXXXXXX'})


и получаю ошибку
  • Вопрос задан
  • 52 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы