ブラウザでP2Pファイル転送(PC⇔スマホ)

ブラウザでP2Pファイル転送(PC⇔スマホ)

サーバー保存なしでファイルを直接転送するWEBアプリ

WindowsとiPhoneの間でファイルを送るのがなかなか面倒。
わざわざケーブルを繋がずにデータを送りたい。
いくらでも需要がありそうなのに何故か無いから作った。

PCでページを開いてQRコードを読み取ると、スマホと1対1で接続し、双方向にファイル送受信できる。

1. アプリの使い方

接続

  1. PCでhttps://circleken.net/transfer-app を開く
  2. 表示されたQRコードをスマホで読み取る
  3. 「接続済み」になったら準備完了
  • アプリ画面


ファイル送信

  1. 送る側が「ファイルを選択」を押す
  2. 送る側が「N件のファイルを送信」を押す
  3. 受け取る側が「保存」を押す
  • 送る側


  • 受け取る側


備考

通信はWebRTC P2Pなので、ファイルデータはサーバーを経由しない。
試してないけどPC←→PC間やスマホ←→スマホ間でも使えるはず。

2. 仕組み

1
2
3
4
5
6
送信側
file-start(JSON)
ArrayBuffer chunk(16KB) x N
file-end(JSON)
transfer-complete(JSON)
受信側
  1. 接続確立は PeerJS(シグナリング)
  2. ファイル本体は WebRTC DataChannel で直接送信
  3. 64KB超の送信バッファ時は待機してバックプレッシャー制御
  4. 直近3秒ローリングウィンドウで速度算出

3. 技術仕様メモ

項目
チャンクサイズ16 KB (16,384 bytes)
バッファ閾値64 KB (65,536 bytes)
速度計算ウィンドウ3 秒
接続タイムアウト30 秒
再接続指数バックオフ + ジッター
再接続上限7 回
一括保存の間隔500 ms

4. 使用ライブラリ

ライブラリバージョン用途
PeerJS1.5.5WebRTC接続のシグナリング・接続管理
QRCode.js1.0.0接続URLのQRコード生成

ファイル転送や通知処理はブラウザ標準API(WebRTC DataChannel / File API / Notification API / Web Audio API)を使用。

便利だね!

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×