fastapi-socketio: “GET /socket.io/?session_id=1&EIO=4&transport=polling&t=NVUgJUF HTTP/1.1” 400 Bad Request
Стек:
- OS: Linux Ubuntu 20.04 LTS
- Python==3.8.5
- socket.io.js==3.1.1
- fastapi==0.63.0
- fastapi-socketio==0.0.6 - https://github.com/pyropy/fastapi-socketio
- python-engineio==4.0.0
- python-socketio==5.0.4
- starlette==0.13.6
- uvicorn==0.13.3
Пишу WebRTC signaling server на FastAPI, используя fastapi-socketio. Каждый раз при коннекте вылетает ошибка подоюного рода:
"GET /socket.io/?session_id=1&EIO=4&transport=polling&t=NVUgJUF HTTP/1.1" 400 Bad Request
fastapi_server.py (на 8000 порту)
from fastapi import FastAPI
from fastapi_socketio import SocketManager
from starlette.middleware.cors import CORSMiddleware
app = FastAPI()
origins = [
"http://localhost",
"http://localhost:3000",
"http://127.0.0.1:9999",
]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
sio = SocketManager(app=app, cors_allowed_origins=["*"], mount_location="/")
from src.app import app, sio
@sio.on("connect") # also, I tried @app.sio
async def handle_connect(sid, environ):
...
client.js (на 9999 порту)
const SIGNALING_SERVER_URL = 'http://127.0.0.1:8000?session_id=1';
let socket = io(SIGNALING_SERVER_URL);
Сервер запускаю командой uvicorn fastapi_server:app --reload