|  |  | 
 |  |  |         this.url = WEBSOCKET_BASE_URL + path; | 
 |  |  |         this.webSocket = null; | 
 |  |  |         this.heartbeatInterval = null; // Store the interval ID | 
 |  |  |         this.heartbeatFrequency = 30000; // Heartbeat every 10 seconds | 
 |  |  |         this.heartbeatFrequency = 30000; // Heartbeat every 30 seconds | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     connect() { | 
 |  |  | 
 |  |  |         }; | 
 |  |  |  | 
 |  |  |         this.webSocket.onmessage = (event) => { | 
 |  |  |             console.log('websocket message received:', event.data); | 
 |  |  |             // console.log('websocket message received:', event.data); | 
 |  |  |             this.onMessage(event.data); | 
 |  |  |         }; | 
 |  |  |  | 
 |  |  | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // Override | 
 |  |  |     onMessage(data) { | 
 |  |  |         // 子类可能会重写这个方法来处理消息 | 
 |  |  |         console.log('WebSocketClient: Message received:', data); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     close() { |