SwarmDrop

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.storagecrypto.subtle, 导致节点启动、密钥操作或接收端保存文件失败。不达标时页面顶部会有明确的横幅提示。

已知限制

  • 发送到一半刷新页面,这次发送就中断了:浏览器不能在你不重新选择文件的情况下再读同一个 文件,因此未完成的发送无法恢复,需要重新选择文件发一次。接收方向不受影响。
  • 待处理的 Offer 不跨刷新。刷新后请让对方重新发起一次。
  • Web 端不能监听原生 TCP/QUIC 地址,跨网络可达性依赖 helper。
  • 接收端文件落盘依赖 OPFS。浏览器存储权限或配额不足时,接收可能失败。
  • 传输历史保留最近 100 条已结束的会话;未完成的接收会话保留 7 天。

On this page