修改了README.md
This commit is contained in:
parent
53288f45aa
commit
b7f087536b
154
README.md
154
README.md
@ -1,7 +1,153 @@
|
|||||||
# Tauri + Vue 3
|
# P2P File Transfer
|
||||||
|
|
||||||
This template should help get you started developing with Tauri + Vue 3 in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
|
一个基于 WebRTC 的点对点文件传输应用,支持跨平台桌面部署。
|
||||||
|
|
||||||
## Recommended IDE Setup
|
## 项目简介
|
||||||
|
|
||||||
- [VS Code](https://code.visualstudio.com/) + [Vue - Official](https://marketplace.visualstudio.com/items?itemName=Vue.volar) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)
|
本项目实现了一个无需经过服务器的 P2P 文件传输系统。文件直接在用户之间通过 WebRTC 数据通道传输,服务器仅用于信令交换(帮助建立 P2P 连接),保证了传输的高效性和隐私性。
|
||||||
|
|
||||||
|
### 主要特性
|
||||||
|
|
||||||
|
- **点对点传输** - 文件直接在用户之间传输,不经过服务器
|
||||||
|
- **房间系统** - 用户可以加入房间,查看并连接房间内的其他用户
|
||||||
|
- **实时传输** - 基于 WebRTC DataChannel 实现高速文件传输
|
||||||
|
- **传输管理** - 实时显示传输进度、状态(发送中/接收中/已完成/失败)
|
||||||
|
- **传输控制** - 接收方可接受或拒绝文件传输请求
|
||||||
|
- **多语言支持** - 支持中文和英文界面切换
|
||||||
|
- **跨平台** - 基于 Tauri 构建,支持 Windows、macOS 和 Linux
|
||||||
|
|
||||||
|
## 技术栈
|
||||||
|
|
||||||
|
### 前端
|
||||||
|
|
||||||
|
- **Vue 3** - 使用 Composition API 和 `<script setup>` 语法
|
||||||
|
- **Tauri 2** - 跨平台桌面应用框架(基于 Rust)
|
||||||
|
- **Socket.io-client** - WebSocket 客户端,用于信令服务器通信
|
||||||
|
- **WebRTC** - 实现点对点数据传输
|
||||||
|
- **vue-i18n** - 国际化支持
|
||||||
|
|
||||||
|
### 后端服务器
|
||||||
|
|
||||||
|
- **Node.js** - 运行时环境
|
||||||
|
- **Koa 2** - Web 框架
|
||||||
|
- **Socket.io** - WebSocket 服务器,用于信令交换
|
||||||
|
- **@koa/cors** - CORS 支持
|
||||||
|
|
||||||
|
## 项目结构
|
||||||
|
|
||||||
|
```
|
||||||
|
p2p-transfer/
|
||||||
|
├── src/ # Vue 前端源码
|
||||||
|
│ ├── components/ # Vue 组件
|
||||||
|
│ ├── composables/ # 组合式函数(WebRTC、文件传输等)
|
||||||
|
│ ├── i18n/ # 国际化配置
|
||||||
|
│ └── utils/ # 工具函数
|
||||||
|
├── server/ # Node.js 后端服务器
|
||||||
|
│ ├── routes/ # 路由
|
||||||
|
│ └── index.js # 服务器入口
|
||||||
|
├── src-tauri/ # Tauri 配置(Rust)
|
||||||
|
└── public/ # 静态资源
|
||||||
|
```
|
||||||
|
|
||||||
|
## 部署方式
|
||||||
|
|
||||||
|
### 一、部署信令服务器
|
||||||
|
|
||||||
|
信令服务器用于帮助客户端建立 P2P 连接,不存储或转发文件数据。
|
||||||
|
|
||||||
|
#### 1. 安装依赖
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd server
|
||||||
|
pnpm install
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 2. 启动服务器
|
||||||
|
|
||||||
|
开发模式(支持热重载):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm dev
|
||||||
|
```
|
||||||
|
|
||||||
|
生产模式:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm start
|
||||||
|
```
|
||||||
|
|
||||||
|
服务器默认运行在 `http://127.0.0.1:3000`
|
||||||
|
|
||||||
|
#### 二、部署桌面客户端
|
||||||
|
|
||||||
|
#### 1. 安装依赖
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm install
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 2. 开发模式
|
||||||
|
|
||||||
|
启动前端开发服务器和 Tauri 开发窗口:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm tauri dev
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 3. 构建生产版本
|
||||||
|
|
||||||
|
构建可分发的桌面应用:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm tauri build
|
||||||
|
```
|
||||||
|
|
||||||
|
构建产物位于 `src-tauri/target/release/bundle/` 目录,包含:
|
||||||
|
|
||||||
|
- Windows: `.exe` 安装程序
|
||||||
|
- macOS: `.dmg` 安装包
|
||||||
|
- Linux: `.AppImage` 或 `.deb` 包
|
||||||
|
|
||||||
|
#### 4. 仅构建前端
|
||||||
|
|
||||||
|
如果只需要构建前端资源:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm build
|
||||||
|
```
|
||||||
|
|
||||||
|
### 三、使用说明
|
||||||
|
|
||||||
|
1. **启动服务器** - 先启动信令服务器
|
||||||
|
2. **启动客户端** - 运行桌面应用
|
||||||
|
3. **连接服务器** - 在客户端输入服务器地址并连接
|
||||||
|
4. **加入房间** - 输入房间ID和昵称加入房间
|
||||||
|
5. **连接用户** - 点击用户列表中的"连接"按钮建立 P2P 连接
|
||||||
|
6. **传输文件** - 选择文件并发送给已连接的用户
|
||||||
|
|
||||||
|
## 网络要求
|
||||||
|
|
||||||
|
- **STUN 服务器** - 应用使用 Google 的公共 STUN 服务器(`stun.l.google.com:19302`)帮助穿透 NAT
|
||||||
|
- **局域网传输** - 在同一局域网内传输效果最佳
|
||||||
|
- **公网传输** - 需要配置 TURN 服务器以支持更复杂的网络环境
|
||||||
|
|
||||||
|
## 开发环境要求
|
||||||
|
|
||||||
|
- **Node.js** >= 18(项目开发使用v20.19.6)
|
||||||
|
- **pnpm** >= 8(项目开发使用10.28.0)
|
||||||
|
- **Rust** >= 1.70(用于 Tauri 构建)
|
||||||
|
- **系统依赖**:
|
||||||
|
- Windows: WebView2, Visual Studio C++ Build Tools
|
||||||
|
- macOS: Xcode Command Line Tools
|
||||||
|
- Linux: webkit2gtk, libayatana-appindicator3
|
||||||
|
|
||||||
|
## 推荐的 IDE 设置
|
||||||
|
|
||||||
|
- [VS Code](https://code.visualstudio.com/)
|
||||||
|
- [Vue - Official](https://marketplace.visualstudio.com/items?itemName=Vue.volar) - Vue 语言支持
|
||||||
|
- [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) - Tauri 支持
|
||||||
|
- [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer) - Rust 语言支持
|
||||||
|
|
||||||
|
## 许可证
|
||||||
|
|
||||||
|
MIT
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user