from fastapi import APIRouter, WebSocket from starlette.websockets import WebSocketDisconnect from app.users.chat.websocket import manager router = APIRouter( prefix="/chat", tags=["Чат"] ) @router.get("") async def root(): pass @router.websocket("/ws/{user_id}") async def websocket_endpoint(websocket: WebSocket, user_id: int): await manager.connect(websocket) try: while True: data = await websocket.receive_text() await manager.broadcast(f"User {user_id}: {data}") except WebSocketDisconnect: manager.disconnect(websocket) await manager.broadcast(f"User {user_id}: себался")