diff --git a/fasthtml/live_reload.py b/fasthtml/live_reload.py index 7a2111fc..b8072e98 100644 --- a/fasthtml/live_reload.py +++ b/fasthtml/live_reload.py @@ -1,4 +1,5 @@ from starlette.routing import WebSocketRoute +from starlette.websockets import WebSocketDisconnect from fasthtml.basics import FastHTML, Script __all__ = ["FastHTMLWithLiveReload"] @@ -23,7 +24,11 @@ def LiveReloadJs(reload_attempts:int=20, reload_interval:int=1000, **kwargs): """ return Script(src % (reload_attempts, reload_interval)) -async def live_reload_ws(websocket): await websocket.accept() +async def live_reload_ws(websocket): + await websocket.accept() + try: + while True: await websocket.receive() + except WebSocketDisconnect: pass class FastHTMLWithLiveReload(FastHTML): """