From 824bec994ccb93af3a270cabbb0304613d500dce Mon Sep 17 00:00:00 2001 From: saber-nyan Date: Sat, 11 May 2019 00:45:14 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=82=D0=B0=D0=B9=D0=BC=D0=B0=D1=83=D1=82=20WS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/Home.vue | 49 ++++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/src/views/Home.vue b/src/views/Home.vue index 4895d74..c9c2109 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -40,29 +40,36 @@ export default { reloadNavbar() { this.$refs.navbar.getCtfServices(); }, + connectWs() { + const wsUrl = this.$store.state.apiUrl + '/ws'; + this.socket = new SockJS(wsUrl); + this.socket.onopen = function () { + console.debug('WS connected'); + }; + this.socket.onclose = function (ev) { + console.debug('WS disconnected', ev.code, ev.reason); + if (ev.code === 1008) { + console.info('Security timeout, reconnecting...'); + this.connectWs(); + } + }; + this.socket.onmessage = ev => { + const parsed = JSON.parse(ev.data); + console.debug('WS got message', parsed); + const currentPort = this.$route.params.servicePort; + if (!(currentPort === undefined || currentPort === parsed.service.port)) { + console.debug('not related port, skipping...'); + return; + } + this.$refs.sidebar.onGotNewStream(parsed); + }; + this.socket.onerror = function (ev) { + console.warn('WS err', ev); + }; + }, }, mounted() { - const wsUrl = this.$store.state.apiUrl + '/ws'; - this.socket = new SockJS(wsUrl); - this.socket.onopen = function () { - console.debug('WS connected'); - }; - this.socket.onclose = function (ev) { - console.debug('WS disconnected', ev.code, ev.reason); - }; - this.socket.onmessage = ev => { - const parsed = JSON.parse(ev.data); - console.debug('WS got message', parsed); - const currentPort = this.$route.params.servicePort; - if (!(currentPort === undefined || currentPort === parsed.service.port)) { - console.debug('not related port, skipping...'); - return; - } - this.$refs.sidebar.onGotNewStream(parsed); - }; - this.socket.onerror = function (ev) { - console.warn('WS err', ev); - }; + this.connectWs(); }, beforeDestroy() { this.socket.close();