愚蠢的地球人

SnapDrop——只用浏览器就能跨平台点对点传文件的神器

【2021年11月25日更新】输入暗号之后会自动生成一个二维码,对方不需要手动输入网址和暗号,只要扫描这个二维码在浏览器打开,就能建立连接。另外修改了一下设备的随机昵称,把原来英文昵称改成了中文,更接地气。

地址:https://snapdrop.fairysoft.net

最近因为疫情,又在家宅了半个月,每天除了吃饭睡觉打豆豆之外就是撸代码。今天SnapDrop2.0增强版终于完成了,突破了局域网的限制,不在同一局域网内的设备也能互相点对点传送文件了,双方只要输入同样的接头暗号就能建立连接。另外修复了Firefox无法接收文件的Bug。

你可能要说这个东西有什么鸟用,其实要说用处真不大。性能和稳定性都不如专门的软件,但是它有两个优点,一是不需要在设备上安装任何第三方的软件,直接用浏览器就能互传文件,比较方便;二是点对点的传输,不会有第三方看到你传的东西,隐私性好。

应用场景:

1.在外面某个地方比如说在单位同事的办公室,你需要把手机上的一个文件传到电脑上打印,而手边又没有数据线,或者你在家想传个图片或者文档到电脑,虽然有数据线可是你的Windows电脑却死活都连不上你的苹果手机。现在你不用在电脑和手机上安装任何第三方的软件,只要在电脑用Edge浏览器打开这个网址,输入接头暗号(如果手机跟电脑在同一局域网内的话可以不用输入接头暗号)。然后用你的手机相机扫一下电脑屏幕上的二维码,在safari浏览器中打开这个网址就能传文件到电脑了。

2.你要从安卓手机传一个图片或文档到你的iPad里(苹果手机的话直接用AirDrop就可以了),可是你iPad上又没有装微信或者其他软件,这时你可以在ipad上用Safari浏览器打开这个网址,然后在手机浏览器里输入这个网址或者扫描iPad上的二维码打开这个网址,就能发文件了。

3.你手机上有一个大文件想发送给朋友,但是没有WiFi,你们俩都不想浪费流量。这时候你可以在手机上开一个热点给你朋友连上,打开这个网址(因为属于同一内网,所以接头暗号可以输入也可不输入),另一方也打开这个网址,或者扫描这个二维码,就能直接发送文件了。数据是直接走的wifi传输不会用数据流量。

4.你跟冠希哥一样热爱摄影,有些私人作品想跟朋友分享,但是担心通过微信发送会留下记录,或者因为内容不和谐而无法发送甚至被封号。用这个来传送最合适不过了,不用担心隐私泄漏的问题。

浏览器兼容性:

微信浏览器只能发送不能下载,所以你在微信中打开了这个网页又想要接收文件的话,需要点击页面右上角然后选择在浏览器打开。推荐使用Edge、Firefox、Chrome、Safari这四款现代浏览器,华为和三星手机自带的浏览器也支持,小米手机自带浏览器不支持。

网络环境兼容性:

两台没有公网IP地址的设备(内网设备)要进行点对点的文件传输,需要进行内网穿透,俗话叫做打洞。在比较复杂的内网环境下打洞经常会失败。在没有服务器中转的情况下,这个问题目前是无法解决的。如果用服务器中转,也就不叫点对点了。如果遇到这种情况还是老老实实的找根数据线或者开热点分享吧。我实测了几种网络环境:

1.家庭宽带WiFi,因为都在同一个内网,设备之间互相通过内网IP就能访问,百分百成功。

2.手机开热点共享,这种网络环境也相当于一个内网,同上,百分百能成功。

3.家庭宽带内网中的设备跟手机移动网络之间互传,同运营商成功率比较高,比如我家是联通宽带,我用联通的5G网络跟家里的电脑互传文件,一般都没问题。跨运营商有时会发不出去。

4.两台手机都通过手机移动网络互传,目前看成功率还比较高,偶尔会无法发送,同上,同运营商成功率要高一点。

5.酒店商场等公共无线网络跟手机移动网络互传,估计是公共网络内部防火墙的原因,成功率比较低。

 

源码我已上传Github,项目地址:https://github.com/laukeng/snapdrop

使用微信扫一扫,捐赠服务器费用,感谢你的支持!

 

ehllo 评论于
回复
博主可以出个原版架设教程吗?有时候官网会打不开,想自已弄一个在阿里云上
liu_geng 评论于
回复
上一篇有介绍,只不过是IIS的教程。Linux的话会更简单,因为网上的教程更多,虽说不是snapdrop的,但是方法一样。都是运行在node.js然后用Nginx或者Apache做个反向代理。
hh 评论于
回复
互联网貌似不够稳定,有时可行有时不可行
愚蠢的地球人 评论于
回复
是的,底层应用的是WebRTC协议,互联网环境比较复杂,各种防火墙还有层层的NAT,有些网络环境估计很难穿透。
AD 评论于
回复
出现了BUG:
[error] 183450#0: *5467 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client:

不知道是什么故障。
32 评论于
回复
学校机房无法穿透😂
zz 评论于
回复
电脑有公网ip,手机没有,为什么也无法在公网上找到对方呢?需要在电脑路由器上进行什么设置吗
Soularin 评论于
回复
fairysoft的snapdrop出现了故障
HTTP 错误 502.3 - Bad Gateway
无法与服务器建立连接
手机流量(移动)和无线网络都尝试了(联通),不确定是什么问题...
qwq 评论于
回复
只成功过一次,然后隔几天想要传照片时发现不行了😭
显示【无法与服务器建立连接】
*苹果设备是11P M,安卓设备是OPPO R15(用谷歌浏览器+魔法打开网站)
qwq 评论于
回复
只成功过一次,然后隔几天想要传照片时发现不行了😭
显示【无法与服务器建立连接】
*苹果设备是11P M,安卓设备是OPPO R15(用谷歌浏览器+魔法打开网站)
*欸?这个评论相同了吗qwq
逆水寒 评论于
回复
还不是很稳定,有时可以,有时不行
愚蠢的地球人 评论于
回复
是的,底层应用的是WebRTC协议,有些网络环境估计很难穿透。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

相关推荐

友情链接

网站分类

最新留言

最近发表