WebSocket ermoeglicht bidirektionale Echtzeit-Kommunikation. Chat, Live-Benachrichtigungen, kollaboratives Editieren.
Server – FastAPI¶
from fastapi import FastAPI, WebSocket, WebSocketDisconnect app = FastAPI() connections: list[WebSocket] = [] @app.websocket(“/ws”) async def websocket_endpoint(ws: WebSocket): await ws.accept() connections.append(ws) try: while True: data = await ws.receive_text() for conn in connections: await conn.send_text(f”User: {data}”) except WebSocketDisconnect: connections.remove(ws)
Client – JavaScript¶
const ws = new WebSocket(‘ws://localhost:8000/ws’); ws.onopen = () => console.log(‘Connected’); ws.onmessage = (event) => { const msg = event.data; document.getElementById(‘messages’).innerHTML += `
${msg}
`; }; ws.onclose = () => setTimeout(() => location.reload(), 3000); document.getElementById(‘send’).onclick = () => { ws.send(document.getElementById(‘input’).value); };
Wichtigste Erkenntnis¶
WebSocket fuer bidirektionale Echtzeit-Kommunikation. Reconnect-Logik auf dem Client. Server-Sent Events fuer Einwegkommunikation.