1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import Vue from 'vue'
- import Vuex from 'vuex'
- import app from './modules/app'
- import user from './modules/user'
- import tagsView from './modules/tagsView'
- import permission from './modules/permission'
- import settings from './modules/settings'
- import getters from './getters'
- import {LiveWS} from "@/utils/liveWS";
- Vue.use(Vuex)
- const store = new Vuex.Store({
- modules: {
- app,
- user,
- tagsView,
- permission,
- settings
- },
- getters,
- state: {
- liveWs: {}
- },
- mutations: {
- // 更新为支持多个 WebSocket 连接
- setLiveWs(state, { ws, liveId }) {
- // 使用 liveId 作为键来存储不同的 WebSocket 连接
- Vue.set(state.liveWs, liveId, ws);
- },
- // 添加移除 WebSocket 连接的 mutation
- removeLiveWs(state, liveId) {
- Vue.delete(state.liveWs, liveId);
- }
- },
- actions: {
- // 修改 action 以正确传递参数
- initLiveWs({ commit, state }, { liveWsUrl, liveId, userId }) {
- // 如果已经存在对应 liveId 的连接,先关闭它
- if (state.liveWs[liveId]) {
- state.liveWs[liveId].close();
- }
- // 创建新的 WebSocket 连接
- const ws = new LiveWS(liveWsUrl, liveId, userId);
- // 提交到 mutation
- commit('setLiveWs', { ws, liveId });
- return ws;
- },
- // 添加关闭特定 WebSocket 连接的 action
- closeLiveWs({ commit, state }, liveId) {
- if (state.liveWs[liveId]) {
- state.liveWs[liveId].close();
- commit('removeLiveWs', liveId);
- }
- }
- }
- })
- export default store
|