ファイル転送
ワンタイムのルームコードで、2つのブラウザ間をWebRTCで直接ファイル転送する。ファイルがサーバーを経由したり保存されたりすることはない。
始める前に
- ファイルは暗号化された WebRTC 接続で2つのブラウザ間を直接移動します。サーバーを経由したり、サーバーに保存されたりすることはありません。
- ピアツーピア接続では、相手に自分の IP アドレスが見えます。これはこの方式の性質です。
- ホストが接続している間は、ルームコードを知っている人なら誰でも参加できます。コードは送受信したい相手だけに共有してください。
- 転送が終わるまで、両方のブラウザタブを開いたままにしてください。ルームは30分で期限切れになります。
- 受信側のブラウザはファイルをメモリ上で組み立てるため、実用上の上限はおよそ 1 GB です。
送信は 64 KB のチャンクとバックプレッシャー制御で行うため、大きなファイルでも接続を圧迫しません。進捗は実際に接続へ渡したバイト数で数えます。
使い方
- 送信側が「ルームを作成」を押すと、ルームコードと共有リンクが表示される。
- リンク(またはコード)を受信側に渡す。受信側が開くと自動で接続が始まる。
- 接続が完了したら、どちら側からでもファイルを選んで送信できる。
- 受信側は転送が終わるとダウンロードボタンが表示される。両方のタブを開いたままにすること。
注意事項
ファイルは WebRTC のデータチャネルで2つのブラウザ間を直接流れ、サーバーを経由したり保存されたりすることは一切ない。サーバーは端末同士の紹介(シグナリング)だけを行う。ピアツーピア接続の性質上、相手には自分の IP アドレスが見える。ルームは30分で期限切れになり、ホストが切断すると終了する。NAT の組み合わせによっては(企業ネットワークなど)直接接続できない場合がある。
よくある質問
- ファイルのサイズ上限は?
- サーバー側の上限はない(ファイルはサーバーを通らない)。ただし受信側のブラウザがメモリ上でファイルを組み立てるため、実用上の目安はおよそ 1 GB まで。
- 途中でタブを閉じたら?
- 転送は中断され、途中までのデータは破棄される。再開機能はないため、新しいルームで送り直す必要がある。
- 暗号化されている?
- WebRTC のデータチャネルは DTLS で暗号化される。ただし相手の身元を保証する仕組みはないため、コードは信頼できる相手にだけ渡すこと。