from fastapi import FastAPI, WebSocket from fastapi.responses import HTMLResponse
app = FastAPI()
html = """
<title>WebSocket Test</title> <textarea id="log" rows="10" cols="30"></textarea>Send <script> var ws = new WebSocket("ws://localhost:8000/ws"); ws.onmessage = function(event) { document.getElementById('log').value += event.data + '\\n'; }; function sendMessage() { var input = document.getElementById("messageInput"); ws.send(input.value); input.value = ''; } </script> """
@app.get("/") async def get(): return HTMLResponse(html)
@app.websocket("/ws") async def websocket_endpoint(websocket: WebSocket): await websocket.accept() while True: data = await websocket.receive_text() await websocket.send_text(f"Echo: {data}")