@sailingrotevista/rotevista-dash 7.0.15 → 7.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/app.js +17 -18
  2. package/package.json +1 -1
package/app.js CHANGED
@@ -1201,9 +1201,15 @@ function connect() {
1201
1201
  socket.onclose = () => {
1202
1202
  if (!simulationMode) {
1203
1203
  ui.status.className = "offline";
1204
- ui.status.innerText = "RECONNECTING...";
1205
- setTimeout(connect, reconnectDelay);
1206
- reconnectDelay = Math.min(reconnectDelay * 1.5, 10000);
1204
+ ui.status.innerText = "OFFLINE";
1205
+
1206
+ // Tentiamo la riconnessione automatica solo se lo schermo è attivo e visibile,
1207
+ // evitando cicli di loop di rete infiniti in background mentre il tablet dorme
1208
+ if (document.visibilityState === "visible") {
1209
+ ui.status.innerText = "RECONNECTING...";
1210
+ setTimeout(connect, reconnectDelay);
1211
+ reconnectDelay = Math.min(reconnectDelay * 1.5, 10000);
1212
+ }
1207
1213
  }
1208
1214
  };
1209
1215
  } catch (e) {
@@ -1319,24 +1325,17 @@ async function init() {
1319
1325
  }
1320
1326
  }
1321
1327
 
1322
- // Watchdog per il risveglio dallo stato di sospensione / cambio scheda
1328
+ // Watchdog attivo per la gestione intelligente dello standby e il massimo risparmio energetico
1323
1329
  document.addEventListener('visibilitychange', () => {
1324
1330
  if (document.visibilityState === 'visible') {
1325
- console.log("🔌 [Watchdog] Tab ritornato visibile. Verifica connessione...");
1326
-
1327
- // Se il socket esiste ma non è attivo o se vogliamo forzare la pulizia delle connessioni fantasma:
1331
+ console.log("🔌 [Watchdog] Schermo sbloccato / Tab visibile. Riconnessione immediata e allineamento storico...");
1332
+ // Al risveglio stabiliamo una nuova connessione pulita che scaricherà lo storico accumulato in background dal server
1333
+ connect();
1334
+ } else if (document.visibilityState === 'hidden') {
1335
+ console.log("🔌 [Watchdog] Schermo bloccato / Tab in background. Chiusura WebSocket preventiva per salvaguardare la batteria.");
1336
+ // Tagliamo attivamente la connessione per congelare all'istante l'attività di rete ed i consumi del browser
1328
1337
  if (socket) {
1329
- if (socket.readyState !== WebSocket.OPEN) {
1330
- // Se era già chiuso o in errore, proviamo a riconnettere subito
1331
- connect();
1332
- } else {
1333
- // Se resulta "OPEN" ma potrebbe essere una connessione fantasma,
1334
- // la chiudiamo forzatamente per scatenare la riconnessione pulita e il download della cronologia
1335
- console.log("🔌 [Watchdog] Riavvio precauzionale del WebSocket per evitare connessioni fantasma.");
1336
- socket.close();
1337
- }
1338
- } else {
1339
- connect();
1338
+ socket.close();
1340
1339
  }
1341
1340
  }
1342
1341
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sailingrotevista/rotevista-dash",
3
- "version": "7.0.15",
3
+ "version": "7.0.16",
4
4
  "description": "Wind Dashboard with navigation and course aids",
5
5
  "main": "index.js",
6
6
  "publishConfig": {