diff --git a/changes/changelog.d/287.bugfix b/changes/changelog.d/287.bugfix new file mode 100644 index 0000000000000000000000000000000000000000..ce14736ad1db4065e086a9c3e5404545b19c5a69 --- /dev/null +++ b/changes/changelog.d/287.bugfix @@ -0,0 +1 @@ +Fixed duplicated websocket connexion on timeline (#287) diff --git a/front/src/views/instance/Timeline.vue b/front/src/views/instance/Timeline.vue index 2ab8b708cd1ae140d31c7ca3c5e1cc3f56631f51..03bd5a53758373257239d054f6ffbead3569d9fe 100644 --- a/front/src/views/instance/Timeline.vue +++ b/front/src/views/instance/Timeline.vue @@ -34,6 +34,7 @@ export default { data () { return { isLoading: false, + bridge: null, components: { 'Like': Like, 'Listen': Listen @@ -44,6 +45,9 @@ export default { this.openWebsocket() this.fetchEvents() }, + destroyed () { + this.disconnect() + }, computed: { ...mapState({ events: state => state.instance.events @@ -58,14 +62,22 @@ export default { self.$store.commit('instance/events', response.data.results) }) }, + disconnect () { + if (!this.bridge) { + return + } + this.bridge.socket.close(1000, 'goodbye', {keepClosed: true}) + }, openWebsocket () { if (!this.$store.state.auth.authenticated) { return } + this.disconnect() let self = this let token = this.$store.state.auth.token // let token = 'test' const bridge = new WebSocketBridge() + this.bridge = bridge bridge.connect( `/api/v1/instance/activity?token=${token}`, null,