From 4cd3569e2588de5ad7c03377a0bea80241566f2f Mon Sep 17 00:00:00 2001
From: Astisme <96465880+Astisme@users.noreply.github.com>
Date: Fri, 28 Oct 2022 12:07:31 +0200
Subject: [PATCH] aggiustata race condition sulla richiesta rpc dopo
 disconnessione

---
 webserver/public/js/mqtt/mqtthat.js | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/webserver/public/js/mqtt/mqtthat.js b/webserver/public/js/mqtt/mqtthat.js
index b8ae2a2..65c14ca 100644
--- a/webserver/public/js/mqtt/mqtthat.js
+++ b/webserver/public/js/mqtt/mqtthat.js
@@ -49,6 +49,8 @@ function sendMessage(topic, message, retryNum = 0) {
 
 export { sendMessage };
 
+let hasDisconnected = false;
+
 // called when the client connects
 function onConnect() {
     // Once a connection has been made, make a subscription and send a message.
@@ -62,7 +64,10 @@ function onConnect() {
     isConnected = true;
     // tell every module that we're connected
     Api.isConnected = true;
-    Api.onConnect();
+    if(hasDisconnected){
+        Api.onConnect();
+        hasDisconnected = false;
+    }
 }
 
 let dateConLost = null;
@@ -75,6 +80,7 @@ function onFailure(message) {
     if (retry && (time < maxTime)) {
         isConnected = false;
         Api.isConnected = false;
+        hasDisconnected = true;
         client.connect(connectOptions);
     }
     if (time >= maxTime) {
@@ -88,6 +94,7 @@ function onConnectionLost(responseObject) {
     console.log("onConnectionLost:", responseObject);
     isConnected = false;
     Api.isConnected = false;
+    hasDisconnected = true;
     setTimeout(() => {
         client.connect(connectOptions);
     }, 1000);
-- 
GitLab