При попытке подключения к 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'})
и получаю ошибку