Fix #99410: SocketIO Reconnect Web Interface #104235

Merged
Sybren A. Stüvel merged 8 commits from Evelinealy/flamenco:socketio-web-interface into main 2023-07-21 17:16:51 +02:00
Showing only changes of commit 09333db822 - Show all commits

View File

@ -49,15 +49,16 @@ export default {
flamencoVersion: DEFAULT_FLAMENCO_VERSION, flamencoVersion: DEFAULT_FLAMENCO_VERSION,
backendURL: backendURL, backendURL: backendURL,
}), }),
mounted() { mounted() {
window.app = this; window.app = this;
this.fetchManagerInfo(); this.fetchManagerInfo();
const sockStatus = useSocketStatus(); const sockStatus = useSocketStatus();
this.$watch(() => sockStatus.isConnected, (isConnected) => { this.$watch(() => sockStatus.isConnected, (isConnected) => {
dr.sybren marked this conversation as resolved

This should also check sockStatus.wasEverDisconnected, otherwise it'll also respond to the initial connection.

This should also check `sockStatus.wasEverDisconnected`, otherwise it'll also respond to the initial connection.
if (isConnected) { if (!isConnected) return;
if (!sockStatus.wasEverDisconnected) return;
this.socketIOReconnect(); this.socketIOReconnect();
}
}); });
}, },
@ -72,14 +73,14 @@ export default {
}, },
socketIOReconnect() { socketIOReconnect() {
dr.sybren marked this conversation as resolved Outdated

This function shouldn't be called here, as it does too much. It not only fetches the current version, but also writes to this.flamencoVersion. This means that it overwrites the value that you want to compare against.

Comparing with DEFAULT_FLAMENCO_VERSION is always going to result in a difference, as the Manager will never return the string 'unknown'.

This function shouldn't be called here, as it does too much. It not only fetches the current version, but also writes to `this.flamencoVersion`. This means that it overwrites the value that you want to compare against. Comparing with `DEFAULT_FLAMENCO_VERSION` is *always* going to result in a difference, as the Manager will never return the string 'unknown'.
this.fetchManagerInfo() const metaAPI = new API.MetaApi(getAPIClient())
if (this.flamencoVersion !== DEFAULT_FLAMENCO_VERSION || this.flamencoName !== DEFAULT_FLAMENCO_NAME ) { metaAPI.getVersion().then((version) => {

For debugging, it's better to log both versions here: the one that was stored on the webapp startup, and the one that was found now. That way you can see "upgraded from X to Y" in the JS console.

For debugging, it's better to log both versions here: the one that was stored on the webapp startup, and the one that was found now. That way you can see "upgraded from X to Y" in the JS console.
console.log(`Upgraded Flamenco Version: ${this.flamencoVersion}`); if (version.name === this.flamencoName && version.version == this.flamencoVersion)
return;
// Reload the page console.log(`Updated from ${this.flamencoVersion} to ${version.version}`);
location.reload(); location.reload();
} });
} },
}, },
} }
</script> </script>