实时匹配系统架构
在现代 Web 应用中,实时交互往往依赖 WebSocket。本例展示如何结合 Vue 与 Spring Boot 实现一个对战匹配流程。
前端状态管理
我们需要在 Vuex 中维护 WebSocket 连接及游戏状态。创建 pk.js 模块来存储 socket 实例、对手信息及当前状态(匹配中或游戏中)。
// store/pk.js
import ModuleUser from './user'
export default {
state: {
socket: null,
opponent_username: "",
opponent_photo: "",
status: "matching", // matching 表示匹配界面,playing 表示对战界面
},
getters: {},
mutations: {
updateSocket(state, socket) { state.socket = socket; },
updateOpponent(state, opponent) {
state.opponent_username = opponent.username;
state.opponent_photo = opponent.photo;
},
updateStatus(state, status) { state.status = status; }
},
actions: {},
modules: { user: ModuleUser }
}
记得在 store/index.js 中注册该模块:
// store/index.js
import { createStore } from 'vuex'
import ModuleUser
({
: {},
: {},
: {},
: {},
: { : , : }
})





