类似AirDrop的跨平台(Windows、iOS、Android)文件传输系统。
- 🔍 自动设备发现 - 同一网络内设备自动发现
- 📡 P2P直传 - 文件通过WebRTC直接传输,不经过服务器
- 📦 大文件支持 - 自动分片传输,支持任意大小文件
- 📱 跨平台 - 支持Windows、macOS、iOS、Android
- 🎨 AirDrop风格UI - 雷达扫描动画、毛玻璃效果
- 📲 PWA支持 - 可安装到桌面/主屏幕
cd server
npm install
npm run dev服务器将在 http://localhost:3000 启动。
cd frontend
npm install
npm run dev前端将在 http://localhost:5173 启动。
- 在多台设备上打开 http://[你的IP]:5173
- 设备会自动在雷达上显示
- 点击目标设备 → 拖入文件 → 点击发送
- 接收方确认后开始传输
WebDrop/
├── frontend/ # 前端应用 (Vue 3 + Vite)
│ ├── src/
│ │ ├── components/ # Vue组件
│ │ ├── composables/ # 组合式函数
│ │ ├── stores/ # Pinia状态管理
│ │ ├── utils/ # 工具函数
│ │ └── styles/ # CSS样式
│ └── public/ # 静态资源
│
└── server/ # 信令服务器 (Node.js + Socket.io)
└── src/
└── index.ts # 服务器入口
- 前端: Vue 3 + Vite + TypeScript + Pinia
- WebRTC: PeerJS
- 信令: Socket.io
- PWA: vite-plugin-pwa
前端环境变量(在 frontend/.env 中配置):
VITE_SIGNALING_SERVER=http://localhost:3000可部署到任何支持Node.js的平台:
- Railway
- Render
- Vercel (Serverless Functions)
- 自有服务器
cd frontend
npm run build构建产物在 frontend/dist 目录,可部署到任何静态托管服务。
MIT