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.
This commit is contained in:
padreug 2025-11-03 23:58:30 +01:00
parent 87a4864c49
commit 725037e669

View file

@ -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]}...")
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."))