import store from '@/uni_modules/vrapile-im/store' import storage from '@/uni_modules/vrapile-im/utils/storage' import constant from '@/uni_modules/vrapile-im/utils/constant' import { formatDate } from '@/uni_modules/vrapile-im/utils/nineTool'; import { TioSocket, getChatKey } from '@/uni_modules/vrapile-im/utils/tiosocket'; const socket = { state: { websocket: storage.get(constant.websocket), websocketData: storage.get(constant.websocketData) }, mutations: { // 存储登录链接 SET_SOCKET: (state, socket) => { state.websocket = socket; storage.set(constant.websocket, socket) }, // 添加socket消息 ADD_MESSAGE: (state, message) => { state.websocketData.push(message) storage.set(constant.websocketData, state.websocketData) // 添加消息 for(let i=0;i { // 删除未读消息 for(let i=0;i { let unReadNum = 0 for(let i=0;i 0){ uni.setTabBarBadge({ index: getApp().globalData.msgTabBarIndex, text: String(unReadNum), fail: (e) => { // console.log(e) } }) }else{ uni.removeTabBarBadge({ index: getApp().globalData.msgTabBarIndex }) } }catch(e){ } }, // 清空消息 CLEAN_MESSAGE: (state, message) => { state.websocketData = new Array(); storage.set(constant.websocketData, new Array()) } }, actions: { // 连接websocket ConnSocket({ commit, state }, params) { return new Promise((resolve, reject) => { let url = params.url; let heartbeatTimeout = 50000; // 心跳超时时间,单位:毫秒 let reconnInterval = 5000; // 重连间隔时间,单位:毫秒 let paramStr = "app=unine&token=" + params.token let socket = new TioSocket(url, paramStr, heartbeatTimeout, reconnInterval); socket.connect(false); }) } } } export default socket