From a93b1425c71da28641f92e462cbd5f3a7fda9c5c Mon Sep 17 00:00:00 2001 From: Nikhil Rao <nikhil@pynecone.io> Date: Mon, 26 Dec 2022 23:14:35 -0800 Subject: [PATCH] Catch websocket disconnect (#184) --- pynecone/app.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pynecone/app.py b/pynecone/app.py index b437254a7..294703a57 100644 --- a/pynecone/app.py +++ b/pynecone/app.py @@ -4,6 +4,7 @@ from typing import Any, Callable, Coroutine, Dict, List, Optional, Tuple, Type, from fastapi import FastAPI, WebSocket from fastapi.middleware import cors +from starlette.websockets import WebSocketDisconnect from pynecone import constants, utils from pynecone.base import Base @@ -320,7 +321,11 @@ def _event(app: App): # Process events until the connection is closed. while True: # Get the event. - event = Event.parse_raw(await websocket.receive_text()) + try: + event = Event.parse_raw(await websocket.receive_text()) + except WebSocketDisconnect: + # Close the connection. + return # Process the event. update = await process(app, event)