初次提交
This commit is contained in:
216
README.md
216
README.md
@@ -1,2 +1,216 @@
|
||||
# client-web
|
||||
# 游戏方块容器 - 优化版本
|
||||
|
||||
## 🚀 项目概述
|
||||
|
||||
这是一个基于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年
|
||||
**维护者**: 游戏开发团队
|
||||
Reference in New Issue
Block a user