26 lines
667 B
Python
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}: себался")
|