You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
821 B

#!/usr/bin/env python
import uvicorn
from fastapi import FastAPI
from fastapi.responses import FileResponse
from fastapi.staticfiles import StaticFiles
import socketio
app = FastAPI()
app.mount("/static", StaticFiles(directory="static"), name="static")
sio = socketio.AsyncServer(async_mode="asgi")
combined_asgi_app = socketio.ASGIApp(sio, app)
@app.get("/")
async def index():
return FileResponse("fiddle.html")
@app.get("/hello")
async def hello():
return {"message": "Hello, World!"}
@sio.event
async def connect(sid, environ, auth):
print(f"connected auth={auth} sid={sid}")
await sio.emit("hello", (1, 2, {"hello": "you"}), to=sid)
@sio.event
def disconnect(sid):
print("disconnected", sid)
if __name__ == "__main__":
uvicorn.run(combined_asgi_app, host="127.0.0.1", port=5000)