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

145

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

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

在线体验: https://explorer.kuraa.cc
git地址: https://git.kuraa.cc/kura/p2p-explorer-web.git (再整理一下转移到github)

已发现的问题:

peerjs的服务在海外,中转几乎不可用。计划解决方案:自己架设turn

✨ 特性

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

需要注意使用的服务

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

🚀 快速开始

安装

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

# 安装依赖
yarn install

# 启动开发服务器
yarn dev

构建

# 构建生产版本
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 提供的 WebRTC 支持
Ant Design Vue 提供的 UI 支持