UNPKG

mcard-js

Version:

MCard - Content-addressable storage with cryptographic hashing, handle resolution, and vector search for Node.js and browsers

47 lines 1.47 kB
export class WebSocketClient { ws = null; url; messageHandler = null; reconnectInterval = 3000; constructor(url) { this.url = url; } connect() { console.log(`[BrowserPTR] Connecting to ${this.url}`); this.ws = new WebSocket(this.url); this.ws.onopen = () => { console.log('[BrowserPTR] WebSocket connected'); }; this.ws.onmessage = (event) => { try { const data = JSON.parse(event.data); if (this.messageHandler) { this.messageHandler(data); } } catch (e) { console.error('[BrowserPTR] Failed to parse message:', e); } }; this.ws.onclose = () => { console.log('[BrowserPTR] WebSocket closed. Reconnecting...'); this.ws = null; setTimeout(() => this.connect(), this.reconnectInterval); }; this.ws.onerror = (error) => { console.error('[BrowserPTR] WebSocket error:', error); }; } setMessageHandler(handler) { this.messageHandler = handler; } send(data) { if (this.ws && this.ws.readyState === WebSocket.OPEN) { this.ws.send(JSON.stringify(data)); } else { console.warn('[BrowserPTR] WebSocket not ready. Message dropped:', data); } } } //# sourceMappingURL=WebSocketClient.js.map