# rmtPocketWatcher - Electron Desktop App Cross-platform desktop application for tracking AUEC RMT prices in real-time. ## WebSocket Implementation The app uses a robust WebSocket client with the following features: ### Main Process (src/main/) - **websocket-client.ts**: Core WebSocket client with auto-reconnect logic - Exponential backoff reconnection (max 10 attempts) - Event-based architecture for easy integration - Connection state management - **ipc-handlers.ts**: IPC bridge between main and renderer processes - Forwards WebSocket events to renderer - Handles renderer commands (connect/disconnect/send) - Auto-connects on app startup ### Renderer Process (src/renderer/) - **hooks/useWebSocket.ts**: React hook for WebSocket integration - Manages connection status - Provides latest price updates - Exposes connect/disconnect/send methods ### Shared Types (src/shared/) - **types.ts**: TypeScript interfaces shared between processes - PriceIndex, VendorPrice, WebSocketMessage - Ensures type safety across IPC boundary ## Setup ```bash npm install ``` ## Development ```bash # Start Vite dev server and Electron npm run electron:dev ``` ## Build ```bash # Build for production npm run electron:build ``` ## Environment Variables Copy `.env.example` to `.env` and configure: - `WS_URL`: WebSocket server URL (default: ws://localhost:3000/ws) ## Security - Context isolation enabled - Sandbox mode enabled - No remote code evaluation - Secure IPC communication via preload script