Add timeout to websocket

This commit is contained in:
Ciaran Ainsworth 2021-05-09 19:52:51 +01:00
parent 71508ecd48
commit ce1fae453b
1 changed files with 11 additions and 4 deletions

View File

@ -238,20 +238,21 @@ export default {
return return
} }
this.bridge.close() this.bridge.close()
console.log("Disconnected from websocket")
}, },
openWebsocket () { openWebsocket () {
if (!this.$store.state.auth.authenticated) { if (!this.$store.state.auth.authenticated) {
return return
} }
this.disconnect()
let self = this let self = this
let token = this.$store.state.auth.token self.disconnect()
let token = self.$store.state.auth.token
// let token = 'test' // let token = 'test'
let url = this.$store.getters['instance/absoluteUrl'](`api/v1/activity?token=${token}`) let url = self.$store.getters['instance/absoluteUrl'](`api/v1/activity?token=${token}`)
url = url.replace('http://', 'ws://') url = url.replace('http://', 'ws://')
url = url.replace('https://', 'wss://') url = url.replace('https://', 'wss://')
const bridge = new WebSocket(url) const bridge = new WebSocket(url)
this.bridge = bridge self.bridge = bridge
bridge.onmessage = function (event) { bridge.onmessage = function (event) {
console.log(event) console.log(event)
self.$store.dispatch('ui/websocketEvent', event) self.$store.dispatch('ui/websocketEvent', event)
@ -260,6 +261,12 @@ export default {
console.log(event) console.log(event)
console.log('Connected to WebSocket') console.log('Connected to WebSocket')
} }
bridge.onclose = function(event) {
console.log("Websocket has closed. Attempting reconnect in 60 seconds.", event.reason)
setTimeout(function() {
self.openWebsocket();
}, 1000 * 60);
}
}, },
getTrackInformationText(track) { getTrackInformationText(track) {
const trackTitle = track.title const trackTitle = track.title