# p2p-explorer-web - P2P 文件传输工具

p2p-explorer-web 是一个基于浏览器的 webtrc P2P 远程文件传输工具,远程文件 web 资源管理器，让用户能够安全、快速地在设备间传输文件，理想情况下无需通过服务器中转。

在线体验: https://explorer.kuraa.cc

## ✨ 特性

- 🔒 本地权限管控 P2P 流式文件传输
- 📁 支持文件夹传输
- 📋 集成剪贴板共享功能
- 🔗 简单的 ID 连接机制
- 🌐 无需安装，基于浏览器即可使用
- 💨 快速分享链接功能

## 需要注意使用的服务

文件交互全部走 webrtc，使用 peerjs 的信令服务器（wss://0.peerjs.com/peerjs）交换 ice 候选（可信，没有本地数据上传），使用 peerjs 的打洞 0.peerjs.com:（可信,没有数据上传），当 udp 直连失败，会使用 peerjs 的中转服务（不可信，所有数据上传），后续会 docker 化,使用自己的 stun 与 turn 自定义部署。

## 🚀 快速开始

### 安装

```bash
# 克隆项目
git clone [项目地址]

# 安装依赖
yarn install

# 启动开发服务器
yarn dev
```

### 构建

```bash
# 构建生产版本
yarn build
# 将 static 目录完整的拷贝到 dist 目录下
cp -r static dist/
```

## 🎯 使用方法

1. 打开应用后，系统会自动生成你的 ID
2. 将你的 ID 分享给对方，或使用分享链接功能
3. 对方输入你的 ID 后即可建立连接
4. 选择要传输的文件或文件夹

## 🛠 技术栈

- WebRTC
- Vue 3
- TypeScript
- PeerJS
- Ant Design Vue
- Vite

## 待完成

- 本地发送到远程的 ui 展示
- 屏幕预览 语音沟通 引用文件文字交流
- docker 化,使用自己的 stun 与 turn 自定义部署
- 各种异常处理需要闭环
- 英文版本
- 打包下载

## 感谢

[PeerJS](https://peerjs.com/) 提供的 WebRTC 支持
[Ant Design Vue](https://2x.antdv.com/docs/vue/introduce-cn/) 提供的 UI 支持
