chat_back/app/users/chat/router.py

26 lines
667 B
Python

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}: себался")