9. 실시간 통신 (WebSockets & SSE)

# 9 강. 실시간 통신 (WebSockets & SSE) ## 🎯 학습 목표 - WebSocket 기본 사용법 - Connection Manager 구현 - Server-Sent Events (SSE) --- ## 1. WebSocket 기본 ```python from fastapi import WebSocket @app.websocket("/ws") async def websocket_endpoint(websocket: WebSocket): await websocket.accept() while True: data = await websocket.receive_text() await websocket.send_text(f"You said: {data}") ``` --- ## 2. Connection Manager ```python class ConnectionManager: def __init__(self): self.connections: List[WebSocket] = [] async def connect(self, websocket: WebSocket): await websocket.accept() self.connections.append(websocket) async def broadcast(self, message: str): for conn in self.connections: await conn.send_text(message) ``` --- ## 3. SSE (Server-Sent Events) ```python from fastapi.responses import StreamingResponse async def event_generator(): while True: yield f"data: {count}\n\n" await asyncio.sleep(1) @app.get("/events") async def stream_events(): return StreamingResponse(event_generator(), media_type="text/event-stream") ```