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


Ответы (0 шт):