websocket
refresh() { if (window.confirm('重置将清空已采集的数据,是否继续?')) { this.tableData = []; if (this.websock.readyState > 1) { this.websocketsend(JSON.stringify({ reset: true })); } window.location.href = '/'; } }, stop(status) { if (status) { this.isClose = false; this.websock.close(); } else { this.initWebSocket(); } }, initWebSocket() { // 初始化weosocket const wsuri = process.env.NODE_ENV === 'production' ? 'ws://47.111.28.93:2000' : 'ws://10.0.1.78:2000'; this.websock = new WebSocket(wsuri); this.websock.onmessage = this.websocketonmessage; this.websock.onopen = this.websocketonopen; this.websock.onerror = this.websocketonerror; this.websock.onclose = this.websocketclose; }, websocketonopen() { // 连接建立之后执行send方法发送数据 if (this.isClose) { const actions = { reset: true }; this.websocketsend(JSON.stringify(actions)); } }, websocketonerror() { // 连接建立失败重连 this.initWebSocket(); }, websocketonmessage(e) { // 数据接收 const redata = JSON.parse(e.data); console.log(redata); if (redata.code === 200) { this.tableData.push(...redata.data); this.number.violation = redata.count.violation; this.number.amount = redata.count.amount; this.number.shops = redata.count.shops; this.number.items = redata.count.items; this.isScrollTop && this.scrollBottom(); this.$store.dispatch('set_collecting', true); this.$store.dispatch('set_number', { show: true, value: this.tableData.length }); } else { this.$message.error(redata.message); } }, websocketsend(Data) { // 数据发送 console.log(Data); this.websock.send(Data); }, websocketclose(e) { // 关闭 console.log('断开连接', e); }