Handle abrupt WebSocket disconnect (e.g. Safari tab close)
Catch ConnectionClosed in User.send() and handler_recv() so that an unclean client disconnect no longer produces "Task exception was never retrieved" / "connection handler failed" log noise. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SH2D4LRuCnhLSzoYerAfJX
This commit is contained in:
+5
-1
@@ -1,5 +1,6 @@
|
||||
import dpath.util as dp
|
||||
import json
|
||||
import websockets.exceptions
|
||||
|
||||
|
||||
def update(d, u, only_existing=True):
|
||||
@@ -26,7 +27,10 @@ class User:
|
||||
msg = dp.search(data, path)
|
||||
result.update(msg)
|
||||
if len(result) != 0:
|
||||
await self.socket.send(json.dumps(result))
|
||||
try:
|
||||
await self.socket.send(json.dumps(result))
|
||||
except websockets.exceptions.ConnectionClosed:
|
||||
pass
|
||||
|
||||
async def process(self, data):
|
||||
handled = True
|
||||
|
||||
Reference in New Issue
Block a user