| | |
| | | import Vue from 'vue' |
| | | import Vuex from 'vuex' |
| | | import { webSocketUrl } from '@/api/request.js' |
| | | Vue.use(Vuex) |
| | | |
| | | // 动态底部tabbar |
| | |
| | | weight: '', |
| | | userId: '' |
| | | }, |
| | | globalisconnect: false |
| | | globalisconnect: true, |
| | | globalisUploadimg: false, |
| | | globalisLogin: false, |
| | | socketTask: null, |
| | | websocketData: null, // 存放从后端接收到的websocket数据 |
| | | globalIntervalId: null, |
| | | }, |
| | | mutations: { |
| | | lengthchange(state, payload) { |
| | |
| | | // 改版全局websocket状态 |
| | | changeisconnect(state, payload) { |
| | | state.globalisconnect = payload |
| | | }, |
| | | changeisUploadimg(state, payload) { |
| | | state.globalisUploadimg = payload |
| | | }, |
| | | changeisLogin(state, payload) { |
| | | state.globalisLogin = payload |
| | | console.log(state.globalisLogin, '全局登录状态改变了') |
| | | }, |
| | | setWebsocketData(state, data) { |
| | | state.websocketData = data |
| | | } |
| | | }, |
| | | actions: { |
| | | websocketInit({ state, dispatch, commit }) { |
| | | let wsUrl = `${webSocketUrl}?access_token=${uni.getStorageSync('token')}` |
| | | state.socketTast = uni.connectSocket({ |
| | | url: wsUrl, |
| | | header: { CLIENT_TOC: 'Y' }, |
| | | complete: res => { |
| | | console.log(res, 'socket结果') |
| | | if (res.errMsg === 'connectSocket:ok') { |
| | | commit('changeisconnect', true) |
| | | } |
| | | } |
| | | }) |
| | | state.socketTast.onOpen(() => dispatch('websocketOnOpen')) |
| | | state.socketTast.onMessage(result => dispatch('websocketOnMessage', result.data)) |
| | | state.socketTast.onClose(e => dispatch('websocketOnClose', e)) |
| | | state.socketTast.onError(e => dispatch('websocketOnError')) |
| | | }, |
| | | websocketOnOpen({ state, commit }) { |
| | | console.log('onOpen') |
| | | state.globalIntervalId = setInterval(() => { |
| | | state.socketTast.send({ |
| | | data: JSON.stringify({ type: 'ping' }), |
| | | success(e) { |
| | | console.log(e, '发送心跳成功') |
| | | } |
| | | }) |
| | | }, 30000) |
| | | }, |
| | | websocketOnClose({ state, commit }) { |
| | | if (!state.socketTast) return |
| | | state.socketTast.close(e => { |
| | | commit('changeisconnect', false) |
| | | }) |
| | | console.log('ws关闭') |
| | | }, |
| | | websocketOnError(e) { |
| | | console.log('socket报错', e) |
| | | }, |
| | | // 接收数据 |
| | | websocketOnMessage({ state, commit }, result) { |
| | | commit('setWebsocketData', result) |
| | | } |
| | | } |
| | | }) |
| | | |
| | | export default store |
| | | export default store |