愚蠢的地球人

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协议,有些网络环境估计很难穿透。
Snapdrop 评论于
回复
博主您好,网站的证书到期失效了,现在浏览器会提示不安全,有些浏览器还会禁止访问。
rzdbaba 评论于
回复
docker怎么部署那?
lzj322 评论于
回复
能不能DOCKER上安装。有没有教程。其他的我看按了没有暗号,不太安全
嘻嘻嘻 评论于
回复
以一种
嘻嘻嘻 评论于
回复
只我一直以为
jacky 评论于
回复
博主,电脑给手机发文件,文件名下载后会乱码是为什么啊

发表评论:

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

相关推荐

友情链接

网站分类

最新留言

最近发表