跳轉到

裝置之間直接傳檔

兩台裝置連上同一個網路,檔案直接從一台到另一台。中間沒有伺服器,文件站這一側拿不到任何一個位元組。

這一頁屬於實驗區,目的是量數字,不是拿來日常用的工具。

為什麼要量這個

文件站的離線內容目前只能透過網路更新。QR code 影格串流每秒送一到三 KB,傳一份幾 MB 的離線內容不成立。

同一個區網裡的直接連線快得多,代價是兩台裝置要先交換一段描述,而那一步通常靠一台伺服器。把那段描述壓到夠小,就能用 QR code 交換,整條路不需要任何伺服器。這一頁先量那段描述有多大,以及實際傳輸有多快。

兩台裝置怎麼測

兩台連上同一個網路,自己開的熱點最可控。

  1. 一台按「我先開始」,第二區會出現一張 QR code
  2. 另一台按「對方先開始」,再按第三區的「用相機掃對方的 QR code」,對準第一台的螢幕
  3. 掃到之後第二台會自己產生回應,第二區換成它的 QR code
  4. 第一台按第三區的掃描,對準第二台的螢幕,掃到就連上了

第一次按掃描時瀏覽器會問能不能用相機,允許才掃得了。相機畫面在這一頁裡解碼,不會送到任何地方。

相機不能用的時候,第二區底下的文字框可以整段複製交給對方,貼進第三區按套用,效果一樣。

連上之後任一邊都可以送東西過去。收的一端會算 SHA-256 跟來源比對,數字一致才算這一次成功。

已知會失敗的情況

公共 Wi-Fi 普遍開啟裝置隔離,同一個網路裡的裝置連不到彼此,而那正好是最需要這個功能的場合。遇到這種網路,頁面會停在候選蒐集完成卻連不上。

Tor Browser 把 WebRTC 整個關掉,因為它會洩漏你真正的 IP。那個版本開不了這一頁的功能。

企業網路與部分訪客網路會擋掉多播,瀏覽器用來認出對方的 .local 名稱因此解析不到。

這一頁不送任何資料

頁面沒有 fetch、XMLHttpRequest、sendBeacon 與 WebSocket,也不載入外部資源。連線設定裡沒有 STUN 也沒有 TURN,連得上就是靠同一個區網裡的候選位址。

檔案內容只在兩台裝置之間流動。匯出紀錄的時候,IP 與 mDNS 名稱會先遮掉再寫進檔案。

測完請回報

傳之前先在第五區那一欄填上這次的環境,例如「自架熱點,Mac Chrome 對 iPhone Safari」。那一行會跟著每一筆紀錄一起匯出,之後整理結果時才對得起來。

按「匯出紀錄」存下 JSON,貼到 issue #553。兩台裝置各匯出一份,收送兩側的耗時才都有。

失敗的結果一樣有用。判準之一就是「失敗要多快說得出來」,卡在轉圈三分鐘的體驗跟直接說不支援,對現場的人差別很大。