文件快传产品系统Vibe Coding

我要开发同款
ink2026年10月08日
3阅读

技术信息

语言技术
HTML5、CSS、JavaScript、Vue、Node.js
系统类型
Web、H5、Windows
行业分类
项目任务

作品详情

行业场景

在局域网环境下,用户需要在多台设备之间快速传输文件。现有方案存在以下痛点:
- **微信/QQ 文件传输**:需要登录账号、受文件大小限制、压缩图片/视频导致质量损失、依赖互联网连接
- **U 盘/数据线传输**:需要物理介质、操作繁琐、无法无线传输
- **网盘中转**:需要上传再下载、速度受限于公网带宽、隐私风险(文件经过第三方服务器)
- **AirDrop**:仅限 Apple 生态,跨平台用户无法使用
- **局域网共享(SMB/FTP)**:配置复杂、普通用户门槛高、无现代 UI
**核心需求**:一个类似 AirDrop 的零配置跨平台局域网文件传输工具,打开即用,无需注册登录,无需联网,文件直传不经过第三方服务器。

功能介绍

构建一个基于 WebRTC DataChannel 的 P2P 局域网文件传输 Web 应用,包含以下核心能力:
1. **自动设备发现**:通过 WebSocket 信令服务器在同一局域网内自动发现在线设备
2. **P2P 直连传输**:WebRTC DataChannel 建立点对点连接,文件数据不经过服务器中转
3. **多端支持**:浏览器(任意现代浏览器)、Electron 桌面客户端、Android WebView
4. **拖拽上传**:支持拖拽文件到浏览器窗口即可发起传输,体验流畅
5. **实时进度反馈**:传输速度、剩余时间、进度条实时更新
6. **多语言界面**:中文(简体)+ 英文,从第一天起支持国际化

项目实现

技术栈:前端 React 19 + Vite 6 + Tailwind 4 + Zustand 5 + Framer Motion;后端 Express 5 + ws 8,P2P 走 WebRTC DataChannel + 自定义二进制分片协议;桌面端 Electron 30 + electron-store + electron-builder;工程化 TypeScript 5 + pnpm workspace + Turborepo;另有 i18next、Vitest。

架构:Monorepo,apps/ 放 server、web、electron,packages/ 放 shared 与 i18n。信令与数据分离——服务器只做设备发现和 SDP/ICE 中继,文件数据全程 P2P。单连接独占状态机 idle→connecting→connected→disconnecting→idle,切换对端先断后连。Electron 复用同一套 Web UI,内嵌服务器可托管页面。

亮点:信令服务器零数据透传,隐私友好、局域网速度接近网卡上限;分片协议带 CRC32 校验、流控与断点续传;单连接独占简化并发,busy 态互斥提示;一份代码库双端形态,桌面端既是客户端又能当信令/页面托管点,手机扫码即用;玻璃态设计加中英双语。

难点:setRemoteDescription 前 addIceCandidate 会抛异常丢候选,需 pendingCandidates 队列加 flush;桌面端与浏览器 ICE 节奏差异带来连接竞态;主叫/被叫 offer/answer 竞态;断点续传需两端同步已收分片并处理重传;大文件策略分叉,Web 内存重组、Electron 流式写盘;DataChannel 背压避免内存爆掉。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论