Web 端使用指南
在浏览器里启动 SwarmDrop 节点,配对设备并收发文件。
Web 端是运行在浏览器里的 SwarmDrop 传输端。它会启动 WASM P2P 节点,通过 helper 进入网络, 再与已配对设备发送或接收文件。
界面分区
打开 /app 会落在设备页。左侧(窄屏是底部)常驻导航分五块:
| 页面 | 做什么 |
|---|---|
| 设备 | 看已配对设备;生成邀请或消费对方的邀请 |
| 发送 | 选一台已配对设备,拖文件进来发出去 |
| 收件箱 | 决策待处理的入站请求;下载已收到的文件 |
| 传输 | 进行中与已结束的会话,点开看文件明细、续传 |
| 设置 | 本机节点身份、helper 连接、开发事件日志 |
导航项上的数字徽标表示待处理的入站请求数与进行中的传输数——你停在别的页面时, 也能看到有东西在等你。
快速开始
启动节点
打开 /app,节点会自动启动,并自动登记内置的公共 helper——不需要手动连接。 左下角(窄屏在顶部)的状态徽章显示节点状态,变成「运行中」即可用。
节点身份保存在本机浏览器存储中;已配对设备、收件箱和传输历史保存在 IndexedDB 中,刷新页面后 仍然在。收到的文件本身存在浏览器的 OPFS 里,随时可以从收件箱重新下载。
配对设备
在设备页完成,两个方向任选其一:
- 消费邀请:把桌面端或移动端生成的邀请链接(
https://swarm-apps.github.io/SwarmDrop/p/#开头)粘进输入框,点「配对」。 - 生成邀请:点「生成邀请」,把生成的串交给对方去消费。
邀请是一次性签名凭证,有效期 5 分钟,用过即失效。配对是一次性动作——配完即长期信任, 以后传文件不必再确认身份。
发送和接收文件
发送在发送页:选一台在线的已配对设备,把文件拖进来,点「发送」。 也可以在设备页某台设备上直接点「发送」,会带着目标跳到发送页。
接收是后台行为,不需要你切到哪一页。对方发来请求时,收件箱的导航徽标会亮起数字, 进去接受或拒绝即可。接收成功的文件会先写入浏览器 OPFS,再生成下载链接。
发送过程中请保持页面打开——刷新会中断发送,且无法恢复;接收被中断(对方离线、 页面刷新)后可以在传输页点开那条会话,用「续传」接着传。
helper 与自托管
helper 是 Web 端进入 P2P 网络的入口。浏览器不能监听本地 TCP/QUIC socket,也不能直接使用 原生 TCP bootstrap 地址,所以跨网络可达性依赖 helper 提供的浏览器可访问入口:
- 提供
webrtc-direct地址(浏览器唯一可拨的公网入口)。 - 参与 DHT,让已配对设备的在线状态(presence)可被查到。
- 在直连不可用时提供 relay / circuit 路径——这也是浏览器被拨回的唯一方式。
内置的公共 helper 适合试用。长期使用或私有部署时,可以参考
自托管引导节点 部署自己的入口,然后在设置页的「连接」区填入它的
multiaddr(末尾要带 /p2p/<PeerId>),点「建立可达(circuit)」。手动登记与自动登记
互不冲突,可以并存。
helper 不解密文件内容。文件传输仍由配对设备之间的加密会话保护。
安全上下文
Web 端依赖浏览器安全 API。推荐使用:
| 来源 | 状态 |
|---|---|
https://你的域名 | 推荐 |
http://localhost | 本机开发可用 |
http://127.0.0.1 | 本机开发可用 |
http://192.168.x.x | 不推荐 |
私有 IP 的普通 HTTP 通常不是安全上下文。浏览器可能禁用 navigator.storage 或 crypto.subtle,
导致节点启动、密钥操作或接收端保存文件失败。不达标时页面顶部会有明确的横幅提示。
已知限制
- 发送到一半刷新页面,这次发送就中断了:浏览器不能在你不重新选择文件的情况下再读同一个 文件,因此未完成的发送无法恢复,需要重新选择文件发一次。接收方向不受影响。
- 待处理的 Offer 不跨刷新。刷新后请让对方重新发起一次。
- Web 端不能监听原生 TCP/QUIC 地址,跨网络可达性依赖 helper。
- 接收端文件落盘依赖 OPFS。浏览器存储权限或配额不足时,接收可能失败。
- 传输历史保留最近 100 条已结束的会话;未完成的接收会话保留 7 天。