fix reconnection spamming

This commit is contained in:
2023-11-25 11:12:31 +01:00
parent 3025781a04
commit 01a278eda2
5 changed files with 58 additions and 13 deletions

View File

@@ -78,6 +78,7 @@ const connectToSSESource = () => {
};
source.onopen = () => {
isReconnecting = false;
console.log( '[ BACKEND INTEGRATION ] Connection to notifier successful' );
};
@@ -86,13 +87,9 @@ const connectToSSESource = () => {
setTimeout( () => {
if ( !isReconnecting ) {
if ( errorCount > 5 ) {
isSSEAuth = false;
}
isReconnecting = true;
console.log( '[ BACKEND INTEGRATION ] Disconnected from notifier, reconnecting...' );
connectToSSESource();
isReconnecting = false;
tryReconnect();
}
}, 1000 );
}, false );
@@ -109,6 +106,22 @@ const connectToSSESource = () => {
}
}
const tryReconnect = () => {
const int = setInterval( () => {
if ( !isReconnecting ) {
clearInterval( int );
} else {
if ( errorCount > 5 ) {
isSSEAuth = false;
errorCount = 0;
} else {
errorCount += 1;
}
connectToSSESource();
}
}, 1000 );
}
let authKey = conf.authKey ?? '';
connect();

View File

@@ -656,12 +656,20 @@ const app = Vue.createApp( {
setTimeout( () => {
if ( !self.isReconnecting ) {
self.isReconnecting = true;
self.connect();
self.isReconnecting = false;
self.tryReconnect();
}
}, 1000 );
}, false );
},
tryReconnect() {
const int = setInterval( () => {
if ( !this.isReconnecting ) {
clearInterval( int );
} else {
connectToSSESource();
}
}, 1000 );
},
dismissNotification() {
this.isShowingWarning = false;
}

View File

@@ -154,12 +154,20 @@ createApp( {
setTimeout( () => {
if ( !self.isReconnecting ) {
self.isReconnecting = true;
self.connect();
self.isReconnecting = false;
self.tryReconnect();
}
}, 1000 );
}, false );
},
tryReconnect() {
const int = setInterval( () => {
if ( !this.isReconnecting ) {
clearInterval( int );
} else {
connectToSSESource();
}
}, 1000 );
},
handleBackground() {
let colourDetails = [];
let colours = [];