Skip to content

Commit a4f10fd

Browse files
committed
add close method to DashWebsocket
1 parent aff6dee commit a4f10fd

2 files changed

Lines changed: 21 additions & 0 deletions

File tree

dash/backends/_fastapi.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,15 @@ async def get_prop(self, component_id: str, prop_name: str) -> Any:
152152
f"Timeout waiting for get_prop response for {component_id}.{prop_name}"
153153
) from exc
154154

155+
async def close(self, code: int = 1000, reason: str = "Connection closed") -> None:
156+
"""Close the WebSocket connection.
157+
158+
Args:
159+
code: WebSocket close code (default 1000 for normal closure)
160+
reason: Human-readable reason for closing
161+
"""
162+
await self._websocket.close(code=code, reason=reason)
163+
155164

156165
_current_request_var = ContextVar("dash_current_request", default=None)
157166

dash/backends/base_server.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -412,3 +412,15 @@ async def set_prop(self, component_id: str, prop_name: str, value: Any) -> None:
412412
prop_name: The property name to update
413413
value: The new value to set
414414
"""
415+
416+
@abstractmethod
417+
async def close(self, code: int = 1000, reason: str = "Connection closed") -> None:
418+
"""Close the WebSocket connection.
419+
420+
Allows developers to forcibly disconnect a client, e.g., on suspicious
421+
activity, session revocation, or policy violation.
422+
423+
Args:
424+
code: WebSocket close code (default 1000 for normal closure)
425+
reason: Human-readable reason for closing
426+
"""

0 commit comments

Comments
 (0)