This repository has been archived on 2026-01-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Game/Client/web/README.md

216 lines
5.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 游戏方块容器 - 优化版本
## 🚀 项目概述
这是一个基于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年
**维护者**: 游戏开发团队