V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
bshu
V2EX  ›  分享创造

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

  •  1
     
  •   bshu · 322 天前 via Android · 3865 次点击
    这是一个创建于 322 天前的主题,其中的信息可能已经有所发展或是发生改变。
    pp 直连 4.3 更新:

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

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

    https://www.ppzhilian.com
    23 条回复    2020-09-23 09:16:03 +08:00
    celerysoft
        1
    celerysoft   322 天前
    很好用的工具,继续加油
    kurtrossel
        2
    kurtrossel   322 天前
    加油,祝越做越好!
    klown
        3
    klown   322 天前 via Android
    加油!
    cond0r
        4
    cond0r   322 天前 via iPhone
    mega.nz 的下载似乎也是先缓存到浏览器 然后再保存到本地 看看他们的 js 呢
    bshu
        5
    bshu   322 天前 via Android
    la9998372
        6
    la9998372   322 天前
    好东西,加油!
    bshu
        7
    bshu   322 天前 via Android
    @cond0r 浏览器缓存在新上线的 推送文件 功能里已经实现,采用的是用 indexeddb 模拟文件系统,可以保存文件到本地,这样保证系统安全与文件持久化。现在的难点在 webrtc 的 datachannel 的提速上,因为是单例,多开通道都效果有限
    native
        8
    native   322 天前
    你这个需要中间服务器做媒介转换吗?
    bshu
        9
    bshu   322 天前 via Android
    @native 局域网和可穿透直连网络不需要中间服务器转换,无法穿透的通过中继服务器实时透传。网站使用过程中连接的服务器是信令服务器,只负责建立双方连接,一点不涉及数据的传输
    guzzhao
        10
    guzzhao   321 天前
    https://github.com/RobinLinus/snapdrop 这个项目 pp 直连类似
    bshu
        11
    bshu   321 天前
    @guzzhao 恩,有几个类似的项目,都是采用 webrtc 实现文件传输。在做个项目之前尝试用过,只是不太稳定,而且很多情况下无法使用,所以就手撸了这个
    firefox12
        12
    firefox12   321 天前
    但是大概率是打不通洞的,局域网里是很不错,但是那样基本没有实用价值。
    JackalZhao
        13
    JackalZhao   321 天前 via Android
    只要打洞没问题,一切都好说。如果浏览器限制实在绕不开,可以考虑加做一个客户端。像是 Syncthing 那样,客户端是二进制(例如用 go 写,可以多平台编译),本身不带图形界面,而是自带 Web GUI,通过浏览器访问进行控制。
    bshu
        14
    bshu   320 天前 via Android
    @JackalZhao 也一直在犹豫是否做客户端,当然客户端与浏览器是可以互联互通的,区别是客户端需要安装,好处是速度更快,资源占用更低
    JackalZhao
        15
    JackalZhao   318 天前 via Android
    @bshu 那就做吧。网页端实现基本功能,进阶功能(例如传输大文件、指定文件保存位置、自动接收文件)放到客户端,网页端就可以作为宣传客户端的入口。我的建议是:如果要做客户端,就用 go 写,一次编写,全平台都能编译,不要写本地图形界面,就用 Web GUI,这样可以做到最广的跨平台支持。
    native
        16
    native   318 天前
    @bshu 那中间作为信令服务器是你个人服务器吗?
    bshu
        17
    bshu   318 天前
    @native 信令服务器现在是我租用的云主机,程序是在其他项目基础上修改而来,还没有独立出来。独立出来后可能会做成 docker,允许用户自己部署,然后在客户端指定信令服务器。
    bshu
        18
    bshu   318 天前
    @JackalZhao 多谢你的建议,我还需要权衡一下。而且之前没有用过 go,还需要评估一下成本。用 electron/cordova 的话,最简单,但是还需要优化。
    mitong3269
        19
    mitong3269   317 天前 via iPhone
    加油哦💪 网站在用 很好用
    JackalZhao
        20
    JackalZhao   317 天前
    @bshu 其实以前就一直希望有这样的一个直连软件,电脑、笔记本、手机上各运行一个客户端,都指向同一个发现服务端,进行设备之间的直连,然后就可以共享剪切板、目录、硬件等,手机上有个文件想发到电脑上也更方便。PP 直连是目前最接近的。我提到使用 Go 开发,其实就是考虑了在手机上的运行,安卓手机有终端软件例如 Termux 可以运行 arm 架构编译的 Linux 二进制包( GUI 软件不行),典例就是 Cloudreve 和 Syncthing,都可以下载二进制包,运行,通过浏览器访问,cloudreve 和 syncthing 都是使用的 Go 开发,一套代码编译到所有平台上都可用,编译出的二进制包也都体积特别小巧,只有几 MB 。但切换语言的确成本也不小。
    bshu
        21
    bshu   317 天前
    @JackalZhao 我也希望能达到所有设备可以互联互通,用浏览器确实有很多限制,后面肯定会有客户端,只是方案还没有定好。我测试在广域网内传输,因为家里的宽带上传速度只有 20 多 m,在局域网内,电脑网卡比较老,是百兆的,可以达到八九十 m,后面还需要一个更好的测试环境,测一下通过浏览器传数据的上限是多少,看是否适合超大文件传输
    ruihe
        22
    ruihe   314 天前
    很好用的网站,感谢开发者
    zhuang0718
        23
    zhuang0718   312 天前
    好网站~支持 ~
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   838 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 21:15 · PVG 05:15 · LAX 14:15 · JFK 17:15
    ♥ Do have faith in what you're doing.