From 725037e669e622e3fa9f582eea974d2f4a63b8b3 Mon Sep 17 00:00:00 2001 From: padreug Date: Mon, 3 Nov 2025 23:58:30 +0100 Subject: [PATCH] Enhances websocket connection robustness Improves websocket connection reliability by predefining the websocket URL and handling potential queueing errors. This change also updates the websocket close message for clarity. --- nostr/nostr_client.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/nostr/nostr_client.py b/nostr/nostr_client.py index 8a2da32..0e38029 100644 --- a/nostr/nostr_client.py +++ b/nostr/nostr_client.py @@ -31,9 +31,11 @@ class NostrClient: logger.debug(f"Connecting to websockets for 'nostrclient' extension...") relay_endpoint = encrypt_internal_message("relay", urlsafe=True) + ws_url = f"ws://localhost:{settings.port}/nostrclient/api/v1/{relay_endpoint}" + on_open, on_message, on_error, on_close = self._ws_handlers() ws = WebSocketApp( - f"ws://localhost:{settings.port}/nostrclient/api/v1/{relay_endpoint}", + ws_url, on_message=on_message, on_open=on_open, on_close=on_close, @@ -181,13 +183,16 @@ class NostrClient: def on_message(_, message): logger.info(f"[NOSTRMARKET DEBUG] Received websocket message: {message[:200]}...") - self.recieve_event_queue.put_nowait(message) + try: + self.recieve_event_queue.put_nowait(message) + except Exception as e: + logger.error(f"[NOSTRMARKET DEBUG] ❌ Failed to queue message: {e}") def on_error(_, error): - logger.warning(f"[NOSTRMARKET DEBUG] Websocket error: {error}") + logger.warning(f"[NOSTRMARKET DEBUG] ❌ Websocket error: {error}") def on_close(x, status_code, message): - logger.warning(f"[NOSTRMARKET DEBUG] Websocket closed: {x}: '{status_code}' '{message}'") + logger.warning(f"[NOSTRMARKET DEBUG] 🔌 Websocket closed: {x}: '{status_code}' '{message}'") # force re-subscribe self.recieve_event_queue.put_nowait(ValueError("Websocket close."))