pp 直连 4.3 先发布, 5.0 继续难产中

2020-09-13 11:48:27 +08:00
 bshu
pp 直连 4.3 更新:

1.增加文件推送功能,本地无需主动下载,挂机后,对方可以直接推送文件,并缓存在本地浏览器沙盒内。特别适合挂机收集文件
2.优化底层传输模块,提高效率与稳定性,降低资源占用
3.对于无法直连的情况,重写 http 中继模块,包括客户端与中继服务器端。中继服务器端已经独立出来,未来可开源,有条件的用户可以部署自己的中继服务器用于私密传输,甚至当作缓存云盘

失望的是 5.0 继续难产中,5.0 的目标是大幅提升大数据传输速度,尤其达到超大文件的快速传输。由于无法突破浏览器本身能力支持的限制,迟迟无重大进展。为此花了很多时间研究 chromium 的源码,查找有无隐藏接口或配置参数,或者 hook 的方案,可惜效果不大。采用客户端的方式是可以突破浏览器的限制,但是与尽量便捷的目标又背道而驰了,纠结中。如果在这方面有研究的兄弟可以帮忙指点一下,多谢!

https://www.ppzhilian.com
5545 次点击
所在节点    分享创造
23 条回复
celerysoft
2020-09-13 11:50:10 +08:00
很好用的工具,继续加油
kurtrossel
2020-09-13 12:15:49 +08:00
加油,祝越做越好!
klown
2020-09-13 12:54:36 +08:00
加油!
cond0r
2020-09-13 13:57:27 +08:00
mega.nz 的下载似乎也是先缓存到浏览器 然后再保存到本地 看看他们的 js 呢
bshu
2020-09-13 14:25:05 +08:00
la9998372
2020-09-13 14:27:27 +08:00
好东西,加油!
bshu
2020-09-13 14:29:38 +08:00
@cond0r 浏览器缓存在新上线的 推送文件 功能里已经实现,采用的是用 indexeddb 模拟文件系统,可以保存文件到本地,这样保证系统安全与文件持久化。现在的难点在 webrtc 的 datachannel 的提速上,因为是单例,多开通道都效果有限
native
2020-09-13 23:08:28 +08:00
你这个需要中间服务器做媒介转换吗?
bshu
2020-09-13 23:45:20 +08:00
@native 局域网和可穿透直连网络不需要中间服务器转换,无法穿透的通过中继服务器实时透传。网站使用过程中连接的服务器是信令服务器,只负责建立双方连接,一点不涉及数据的传输
guzzhao
2020-09-14 17:01:28 +08:00
https://github.com/RobinLinus/snapdrop 这个项目 pp 直连类似
bshu
2020-09-14 17:45:31 +08:00
@guzzhao 恩,有几个类似的项目,都是采用 webrtc 实现文件传输。在做个项目之前尝试用过,只是不太稳定,而且很多情况下无法使用,所以就手撸了这个
firefox12
2020-09-14 21:24:58 +08:00
但是大概率是打不通洞的,局域网里是很不错,但是那样基本没有实用价值。
JackalZhao
2020-09-15 02:52:00 +08:00
只要打洞没问题,一切都好说。如果浏览器限制实在绕不开,可以考虑加做一个客户端。像是 Syncthing 那样,客户端是二进制(例如用 go 写,可以多平台编译),本身不带图形界面,而是自带 Web GUI,通过浏览器访问进行控制。
bshu
2020-09-15 08:53:59 +08:00
@JackalZhao 也一直在犹豫是否做客户端,当然客户端与浏览器是可以互联互通的,区别是客户端需要安装,好处是速度更快,资源占用更低
JackalZhao
2020-09-17 15:15:10 +08:00
@bshu 那就做吧。网页端实现基本功能,进阶功能(例如传输大文件、指定文件保存位置、自动接收文件)放到客户端,网页端就可以作为宣传客户端的入口。我的建议是:如果要做客户端,就用 go 写,一次编写,全平台都能编译,不要写本地图形界面,就用 Web GUI,这样可以做到最广的跨平台支持。
native
2020-09-17 20:05:30 +08:00
@bshu 那中间作为信令服务器是你个人服务器吗?
bshu
2020-09-17 20:22:01 +08:00
@native 信令服务器现在是我租用的云主机,程序是在其他项目基础上修改而来,还没有独立出来。独立出来后可能会做成 docker,允许用户自己部署,然后在客户端指定信令服务器。
bshu
2020-09-17 20:27:40 +08:00
@JackalZhao 多谢你的建议,我还需要权衡一下。而且之前没有用过 go,还需要评估一下成本。用 electron/cordova 的话,最简单,但是还需要优化。
mitong3269
2020-09-18 08:42:20 +08:00
加油哦💪 网站在用 很好用
JackalZhao
2020-09-18 11:59:49 +08:00
@bshu 其实以前就一直希望有这样的一个直连软件,电脑、笔记本、手机上各运行一个客户端,都指向同一个发现服务端,进行设备之间的直连,然后就可以共享剪切板、目录、硬件等,手机上有个文件想发到电脑上也更方便。PP 直连是目前最接近的。我提到使用 Go 开发,其实就是考虑了在手机上的运行,安卓手机有终端软件例如 Termux 可以运行 arm 架构编译的 Linux 二进制包( GUI 软件不行),典例就是 Cloudreve 和 Syncthing,都可以下载二进制包,运行,通过浏览器访问,cloudreve 和 syncthing 都是使用的 Go 开发,一套代码编译到所有平台上都可用,编译出的二进制包也都体积特别小巧,只有几 MB 。但切换语言的确成本也不小。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/706555

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX