Files
wails-epic/README.md
hu xiaotong 0246bc7060 init
2025-07-02 16:12:52 +08:00

223 lines
4.6 KiB
Markdown
Raw 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.

# 装备数据导出工具
一个基于Go + Wails + React的桌面应用程序用于抓取游戏TCP包并解析装备数据。
## 功能特性
- 🎯 **TCP包抓取** - 实时抓取游戏客户端的TCP通信数据
- 🔍 **数据解析** - 自动解析十六进制数据为可读的装备信息
- 📊 **数据可视化** - 现代化的React界面展示装备数据
- 💾 **数据导出** - 支持导出为JSON格式
- 🚀 **高性能** - 基于Go语言的高性能网络处理
## 技术栈
### 后端
- **Go 1.21+** - 主要开发语言
- **Wails v2** - 桌面应用框架
- **gopacket** - 网络包抓取
- **zap** - 结构化日志
### 前端
- **React 18** - 用户界面框架
- **TypeScript** - 类型安全
- **Vite** - 构建工具
- **Ant Design** - UI组件库
## 快速开始
### 环境要求
- Go 1.21+
- Node.js 18+
- npm 或 yarn
### 安装步骤
1. **克隆项目**
```bash
git clone <repository-url>
cd equipment-analyzer
```
2. **安装后端依赖**
```bash
go mod tidy
```
3. **安装前端依赖**
```bash
cd frontend
npm install
cd ..
```
4. **开发模式运行**
```bash
make dev
```
5. **构建发布版本**
```bash
make release
```
## 使用说明
### 1. 启动应用
运行应用后,会看到主界面。
### 2. 选择网络接口
- 点击"刷新接口"获取可用的网络接口
- 选择包含游戏流量的网络接口通常是192.168开头的IP
### 3. 开始抓包
- 点击"开始抓包"按钮
- 启动游戏并登录
- 在游戏中查看装备数据
### 4. 停止抓包
- 点击"停止抓包"按钮
- 等待数据处理完成
### 5. 导出数据
- 点击"导出数据"按钮
- 选择保存位置
## 项目结构
```
equipment-analyzer/
├── cmd/ # 应用程序入口
├── internal/ # 内部包
│ ├── capture/ # 抓包模块
│ ├── parser/ # 数据解析
│ ├── model/ # 数据模型
│ ├── service/ # 业务逻辑
│ ├── config/ # 配置管理
│ └── utils/ # 工具函数
├── frontend/ # React前端
│ ├── src/ # 源代码
│ ├── dist/ # 构建输出
│ └── package.json # 前端依赖
├── build/ # 构建产物
├── go.mod # Go模块
├── wails.json # Wails配置
└── Makefile # 构建脚本
```
## 开发指南
### 添加新功能
1. **后端功能**
-`internal/`目录下创建相应的模块
-`service/`中实现业务逻辑
-`main.go`中绑定到前端
2. **前端功能**
-`frontend/src/`下创建React组件
- 使用TypeScript确保类型安全
- 遵循Ant Design设计规范
### 测试
```bash
# 运行单元测试
make test
# 运行集成测试
make test-integration
# 代码检查
make lint
```
### 构建
```bash
# 开发构建
make build
# 发布构建
make release
# 清理构建文件
make clean
```
## 配置说明
应用会在用户目录下创建配置文件:`~/.equipment-analyzer/config.json`
```json
{
"app": {
"name": "equipment-analyzer",
"version": "1.0.0",
"debug": false
},
"capture": {
"default_filter": "tcp and ( port 5222 or port 3333 )",
"default_timeout": 3000,
"buffer_size": 1600,
"max_packet_size": 65535
},
"parser": {
"max_data_size": 1048576,
"enable_validation": true
},
"log": {
"level": "info",
"file": "equipment-analyzer.log",
"max_size": 100,
"max_backups": 3,
"max_age": 28,
"compress": true
}
}
```
## 故障排除
### 常见问题
1. **无法获取网络接口**
- 确保以管理员权限运行
- 检查WinPcap/Npcap是否正确安装
2. **抓包失败**
- 检查防火墙设置
- 确认网络接口选择正确
- 查看日志文件获取详细错误信息
3. **数据解析失败**
- 确认游戏协议格式
- 检查十六进制数据格式
- 查看控制台错误信息
### 日志文件
应用日志保存在:`logs/equipment-analyzer.log`
## 贡献指南
1. Fork 项目
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 打开 Pull Request
## 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
## 联系方式
- 项目主页:[GitHub Repository]
- 问题反馈:[Issues]
- 邮箱team@equipment-analyzer.com
---
**注意**: 本工具仅用于学习和研究目的,请遵守相关法律法规和游戏服务条款。