from fastapi import FastAPI, WebSocket, WebSocketDisconnect, Request from fastapi.responses import HTMLResponse from fastapi.templating import Jinja2Templates from manager import ConnectionManager manager = ConnectionManager() app = FastAPI() templates = Jinja2Templates(directory="./templates") @app.get("/") async def index(request: Request, response_class=HTMLResponse): return templates.TemplateResponse('index.html', {'request': request}) @app.websocket("/ws/{client_id}") async def websocket_endpoint(websocket: WebSocket, client_id: int): await manager.connect(websocket) try: while True: data = await websocket.receive_text() await manager.send_personal_message(f"You wrote: {data}", websocket) await manager.broadcast(f"Client #{client_id} says: {data}") except WebSocketDisconnect: manager.disconnect(websocket) await manager.broadcast(f"Client #{client_id} left the chat")
def __init__(self, dataprotocl=DataPackProtoc()): """初始化 """ self.service = None self.connmanager = ConnectionManager() self.dataprotocl = dataprotocl
def __init__(self, wsuri): WebSocketServerFactory.__init__(self, wsuri) self.connmanager = ConnectionManager() self.gamemanger_A = Gamemanger() self.tick()