# 游戏方块容器 - 优化版本 ## 🚀 项目概述 这是一个基于Vue 3和WebSocket的实时游戏监控系统,用于显示4个游戏方块的连接状态和动态圆点。 ## ✨ 优化内容 ### 1. **性能优化** - ✅ **WebSocket连接管理优化**:使用连接池和自动重连机制 - ✅ **DOM操作优化**:使用Vue响应式数据替代直接DOM操作 - ✅ **内存管理**:限制圆点数量,防止内存泄漏 - ✅ **动画性能**:使用CSS3硬件加速和will-change属性 ### 2. **代码结构优化** - ✅ **组件化设计**:将方块组件化,提高代码复用性 - ✅ **服务类分离**:WebSocket逻辑独立到服务类 - ✅ **配置管理**:统一的配置文件管理 - ✅ **工具类**:通用工具函数和日志系统 ### 3. **用户体验优化** - ✅ **响应式设计**:支持不同屏幕尺寸 - ✅ **加载状态**:连接状态指示器和加载动画 - ✅ **键盘快捷键**:快速操作功能 - ✅ **状态栏**:实时显示连接状态和统计信息 ### 4. **错误处理增强** - ✅ **完善的错误处理**:WebSocket连接错误处理 - ✅ **自动重连机制**:指数退避算法 - ✅ **日志系统**:分级日志记录 - ✅ **性能监控**:性能测量和分析 ### 5. **安全性优化** - ✅ **输入验证**:坐标范围验证 - ✅ **连接验证**:WebSocket连接状态检查 - ✅ **错误边界**:防止应用崩溃 ## 🛠️ 技术栈 - **前端框架**:Vue 3 - **通信协议**:WebSocket - **样式**:CSS3 + 响应式设计 - **协议缓冲**:Protobuf.js - **工具库**:自定义工具类 ## 📁 项目结构 ``` web/ ├── index.html # 主页面 ├── game.js # 主应用逻辑 ├── config.js # 配置文件 ├── utils.js # 工具类 ├── style.css # 样式文件 ├── proto/ # 协议文件 │ ├── action.proto # 动作协议 │ └── define.proto # 定义协议 └── README.md # 项目说明 ``` ## 🚀 快速开始 ### 1. 启动项目 ```bash # 使用任何HTTP服务器启动项目 python -m http.server 8000 # 或 npx serve . ``` ### 2. 访问应用 打开浏览器访问 `http://localhost:8000` ## ⌨️ 键盘快捷键 | 快捷键 | 功能 | |--------|------| | `H` | 隐藏/显示状态栏 | | `C` | 清除所有圆点 | | `R` | 重新连接所有WebSocket | ## ⚙️ 配置说明 ### WebSocket配置 ```javascript websocket: { baseUrl: 'ws://localhost:8501', // WebSocket服务器地址 reconnectAttempts: 5, // 重连次数 reconnectDelay: 1000, // 重连延迟 heartbeatInterval: 30000, // 心跳间隔 connectionTimeout: 10000 // 连接超时 } ``` ### 游戏配置 ```javascript game: { maxDotsPerSquare: 100, // 每个方块最大圆点数 dotLifetime: 30000, // 圆点生命周期 gridSize: { width: 400, height: 400 }, // 网格大小 animationDuration: 300 // 动画持续时间 } ``` ## 🔧 自定义配置 ### 修改WebSocket服务器地址 在 `config.js` 中修改 `websocket.baseUrl`: ```javascript websocket: { baseUrl: 'ws://your-server:port', // ... 其他配置 } ``` ### 调整性能参数 ```javascript performance: { enableAnimations: true, // 启用动画 enableHoverEffects: true, // 启用悬停效果 enableBackdropFilter: true, // 启用背景模糊 maxFPS: 60 // 最大帧率 } ``` ## 📊 性能特性 ### 1. **响应式布局** - 桌面端:2x2网格布局 - 平板端:2x2自适应布局 - 移动端:1x4垂直布局 ### 2. **动画优化** - CSS3硬件加速 - 帧率控制 - 动画性能监控 ### 3. **内存管理** - 圆点数量限制 - 自动清理机制 - 内存泄漏防护 ## 🐛 调试功能 ### 日志系统 ```javascript // 在浏览器控制台查看详细日志 utils.debug('调试信息'); utils.info('一般信息'); utils.warn('警告信息'); utils.error('错误信息'); ``` ### 性能监控 ```javascript // 测量函数执行时间 const { result, duration } = utils.measurePerformance('函数名', () => { // 要测量的代码 }); ``` ## 🔒 安全特性 ### 1. **输入验证** - 坐标范围检查 - 数据类型验证 - 恶意数据过滤 ### 2. **连接安全** - WebSocket状态验证 - 连接超时处理 - 错误恢复机制 ## 📱 移动端支持 - 响应式设计 - 触摸友好的界面 - 性能优化 - 电池友好的动画 ## 🎨 主题定制 ### 颜色方案 可以通过修改CSS变量来自定义主题: ```css :root { --primary-color: #ff6b6b; --secondary-color: #4ecdc4; --background-color: #f5f5f5; --border-color: #555; } ``` ## 🤝 贡献指南 1. Fork 项目 2. 创建功能分支 3. 提交更改 4. 推送到分支 5. 创建 Pull Request ## 📄 许可证 MIT License ## 📞 支持 如有问题或建议,请提交 Issue 或联系开发团队。 --- **版本**: 2.0.0 **最后更新**: 2024年 **维护者**: 游戏开发团队