我使用WebRTC构建了一个基于浏览器的P2P文件传输工具(无需服务器上传)
Source: Dev.to
Overview
大多数互联网上的文件传输工具的工作方式如下:
- 将文件上传到服务器。
- 服务器保存文件。
- 另一位用户下载文件。
虽然这种方式可行,但它有几个缺点:
- 文件会临时存储在服务器上。
- 对于大文件来说,上传时间可能很慢。
- 会消耗服务器带宽。
为了解决这些问题,我使用 WebRTC 构建了一个 基于浏览器的点对点(P2P)文件传输工具。传输直接在浏览器之间进行——没有服务器存储、没有服务器上传,且连接是加密的。
How It Works
该工具使用 WebRTC DataChannels 在两位用户之间建立直接的 P2P 连接。
- 用户 A 打开工具并创建会话。
- 生成一个 会话代码。
- 用户 B 输入相同的会话代码。
- 建立 WebRTC 连接。
- 文件直接在两个浏览器之间传输。
User A
│
│ session code
▼
User B
│
▼
WebRTC connection
│
▼
Direct file transfer
一旦连接建立,文件就会在对等方之间直接移动,不会经过任何中心服务器。
Why WebRTC?
WebRTC 通常因以下用途而为人所知:
- 视频通话
- 语音聊天
- 实时协作
它还支持 DataChannels,允许浏览器直接向彼此发送任意二进制数据。这使得 WebRTC 成为构建完全在浏览器中运行的 P2P 工具的理想选择。
Features
- 点对点文件传输
- 无服务器存储或上传
- 直接、加密的浏览器到浏览器连接
- 基于会话代码的配对
- 完全客户端操作(无需安装)
Try It
你可以在此尝试该工具:
👉
- 在两台设备或两个浏览器上打开页面。
- 将生成的会话代码分享给对方。
- 开始传输文件。
Future Directions
我还在探索其他基于浏览器的 P2P 实用工具,例如:
- P2P 聊天
- P2P 剪贴板共享
- P2P 流媒体实验
- 更多 WebRTC 实用工具
在完全基于浏览器运行的点对点应用方面,有很多有趣的潜力可以开发。
Feedback
如果你尝试了该工具,期待收到你的反馈。哪些功能可以让它更实用?