mirror of
https://github.com/MatrixSeven/file-transfer-go.git
synced 2026-02-04 03:25:03 +08:00
195 lines
5.7 KiB
Markdown
195 lines
5.7 KiB
Markdown
# 文件快传 - P2P文件传输工具
|
||
|
||
|
||
**安全、快速、简单的点对点文件传输解决方案 - 无需注册,即传即用**
|
||
|
||
## [在线体验](https://transfer.52python.cn) • [关注我](https://x.com/_MatrixSeven) • [帮助文档](https://transfer.52python.cn/help)
|
||
|
||

|
||
|
||
|
||
|
||
## ✨ 核心功能[端到端数据传输完全基于WebRTC的P2P直连]
|
||
<div align="center">
|
||
|
||

|
||

|
||

|
||

|
||

|
||

|
||
|
||
</div>
|
||
|
||
- 📁 **文件传输** - 支持多文件同时传输
|
||
- 📝 **文字传输** - 快速分享文本内容
|
||
- 🖥️ **桌面共享** - 实时屏幕共享
|
||
- 🔗 **连接状态同步** - 实时连接状态UI同步
|
||
- 🔒 **端到端加密** - 数据传输安全,服务器不存储文件
|
||
- 📱 **响应式设计** - 完美适配手机、平板、电脑
|
||
- 🖥️ **多平台支持** - 支持linux/macos/win 单文件部署
|
||
|
||
## 🔄 最近更新日志
|
||
|
||
### 2025-09-5
|
||
- ✅ **WEBRTC链接恢复** - 关闭页面后在打开,进行数据链接恢复
|
||
- ✅ **定义TURN配置** - 支持自定义中继TURN配置
|
||
- ✅ **优化移动端提示** - 优化各种场景的错误提示
|
||
- ✅ **帮助文档** - 常见问题说明文档更新
|
||
|
||
### 2025-09-1
|
||
- ✅ **移动端桌面全屏** - 优化移动端下UI,并解决全屏问题
|
||
|
||
### 2025-08-28
|
||
- ✅ **完善Docker部署支持** - 优化Docker配置,支持一键部署和多环境配置
|
||
- ✅ **优化README文档** - 更新项目说明,完善部署指南和技术栈信息
|
||
- ✅ **改进UI用户体验** - 优化界面细节,完善错误提示和加载状态
|
||
- ✅ **重构Hooks架构** - 拆分复杂hooks,提高代码复用性和可维护性
|
||
|
||
### 2025-08-24
|
||
- ✅ **文件传输 ACK 确认支持** - 实现了可靠的数据传输机制,每个数据块都需要接收方确认
|
||
- ✅ **修复组件渲染后重复注册/解绑 bug** - 解决了 React 组件重复渲染导致的处理器反复注册问题
|
||
- ✅ **修复进度显示 Infinity% 问题** - 解决了除零错误和进度闪烁问题
|
||
|
||
### 2025-08-14
|
||
- ✅ **分离UI组件,统一UI状态** - 重构UI架构,提高代码复用性和可维护性
|
||
- ✅ **共享底层链接** - 优化WebRTC连接管理,支持多个业务模块共享连接
|
||
- ✅ **远程桌面支持** - 新增实时屏幕共享功能
|
||
- ✅ **修复 WebRTC 连接状态异常** - 增强了连接状态错误处理和恢复能力
|
||
|
||
## 🚀 技术栈
|
||
|
||
### 前端技术栈
|
||
- **Next.js 15** - React全栈框架,支持SSR/SSG
|
||
- **React 18** - 现代化UI组件库
|
||
- **TypeScript 5** - 类型安全的JavaScript超集
|
||
- **Tailwind CSS 3.4** - 实用优先的CSS框架
|
||
- **Radix UI** - 无障碍访问的组件库
|
||
- **Zustand** - 轻量级状态管理
|
||
- **Lucide React** - 现代化图标库
|
||
|
||
### 后端技术栈
|
||
- **Go 1.22** - 高性能编程语言
|
||
- **WebSocket** - 实时双向通信
|
||
- **内存存储** - 轻量级数据存储
|
||
- **标准库** - 原生HTTP服务器
|
||
|
||
### 传输协议
|
||
- **WebRTC DataChannel** - 端到端数据传输
|
||
- **P2P直连** - 点对点连接,无需中转
|
||
- **ICE框架** - 网络连接协商
|
||
- **STUN/TURN** - NAT穿透支持
|
||
|
||
|
||
### 架构特点
|
||
- **微服务架构** - 前后端分离
|
||
- **实时通信** - WebSocket + WebRTC
|
||
- **响应式设计** - 移动端适配
|
||
- **容器化** - Docker部署支持
|
||
|
||
## 📦 快速部署
|
||
|
||
### 方式一:Docker 一键部署(推荐)
|
||
|
||
```bash
|
||
# 使用 Docker Compose(最简单)
|
||
git clone https://github.com/MatrixSeven/file-transfer-go.git
|
||
cd file-transfer-go
|
||
docker-compose up -d
|
||
|
||
# 或者直接使用 Docker 镜像
|
||
docker run -d -p 8080:8080 --name file-transfer-go matrixseven/file-transfer-go:latest
|
||
```
|
||
|
||
### 方式二:本地构建部署
|
||
|
||
```bash
|
||
git clone https://github.com/MatrixSeven/file-transfer-go.git
|
||
cd file-transfer-go
|
||
./build-fullstack.sh
|
||
./dist/file-transfer-go
|
||
```
|
||
|
||
访问 http://localhost:8080 开始使用
|
||
|
||
### 方式三:开发环境部署
|
||
|
||
```bash
|
||
# 后端服务
|
||
make dev
|
||
|
||
# 前端服务(新终端)
|
||
cd chuan-next && yarn && yarn dev
|
||
```
|
||
|
||
### 部署配置说明
|
||
|
||
#### 环境变量配置
|
||
- `NODE_ENV`: 运行环境(development/production)
|
||
- `PORT`: 服务端口(默认8080)
|
||
- `GO_BACKEND_URL`: 后端服务地址
|
||
|
||
#### Docker 配置选项
|
||
```yaml
|
||
# docker-compose.yml 可配置项
|
||
environment:
|
||
- NODE_ENV=production
|
||
- PORT=8080
|
||
ports:
|
||
- "8080:8080"
|
||
restart: unless-stopped
|
||
```
|
||
|
||
#### 多架构支持
|
||
项目支持多架构Docker镜像:
|
||
- `linux/amd64` - x86_64 架构
|
||
- `linux/arm64` - ARM 64位架构
|
||
|
||
#### 镜像版本
|
||
- `latest` - 最新稳定版本
|
||
- `v1.0.x` - 特定版本号
|
||
- `dev` - 开发版本
|
||
|
||
## 🎯 使用方法
|
||
|
||
### 发送文件
|
||
1. 选择文件 → 生成取件码 → 分享6位码
|
||
|
||
### 文字传输
|
||
1. 输入文字内容 → 生成取件码 → 分享给对方
|
||
|
||
### 桌面共享
|
||
1. 点击共享桌面 → 生成取件码 → 对方输入码观看
|
||
|
||
## 📊 项目架构
|
||
|
||
```
|
||
发送方 ←─── WebSocket信令 ───→ 服务器 ←─── WebSocket信令 ───→ 接收方
|
||
│ │
|
||
└────────────── WebRTC P2P直连传输 ──────────────────────────┘
|
||
```
|
||
|
||
## 🛠️ 本地开发
|
||
|
||
```bash
|
||
# 后端
|
||
make dev
|
||
|
||
# 前端
|
||
cd chuan-next && yarn && yarn dev
|
||
```
|
||
|
||
## 📄 许可证
|
||
|
||
MIT License
|
||
|
||
---
|
||
|
||
<div align="center">
|
||
|
||
⭐ 如果觉得这个项目对你有帮助,请给个星标!
|
||
|
||
[]
|
||
|
||
</div>
|