pyropy / fastapi-socketio

Easily integrate socket.io with your FastAPI app 🚀
Apache License 2.0
328 stars 31 forks source link

How do i use it? #46

Open lrosch opened 10 months ago

lrosch commented 10 months ago

I'm currently trying to work this module into my Server. I tried to test it via

`if name == "main": app = FastAPI() socket_manager = SocketManager(app=app) uvicorn.run(app, host="localhost", port=40000)

@app.sio.on('join')
async def handle_join(sid, *args, **kwargs):
    await app.sio.emit('lobby', 'User joined')

@app.sio.event
async def connect(sid, environ):
    print(f"client {sid} has connected to the server")

`

i want to run my socketio on my /socket.io route is it possible via this module, since mounting the normal socket.io to fastapi results in a 404 route not found.

BuckLearnsCode commented 9 months ago

Did you ever figure out how to solve this?

lrosch commented 9 months ago

I proceeded to just use normal python-socketio with fastapi where i had my setup like: app = FastAPI() sio = socketio.AsyncServer(async_mode='asgi', json=BaseModelJSON, cors_allowed_origins=[], namespaces=["*"], **kwargs) asgi = socketio.ASGIApp(socketio_server=self.sio, socketio_path="/") app.mount("/socket.io", asgi)

My Problem was that i mounted as "/socket.io" and my socketio_path was also "/socket.io" so my routes weren't found

Artucuno commented 8 months ago

Not sure if you still need help with this, but #50 fixes this issue.

@BuckLearnsCode @lrosch