爱意满满的作品展示区。
bshu

撸一个基于浏览器的 P2P 应用,代替百度云盘传文件,顺便补网页微信不能用的缺

  •  3
     
  •   bshu · Dec 1, 2019 via Android · 19764 views
    This topic created in 2531 days ago, the information mentioned may be changed or developed.
    之前用百度云盘基本为了远程传文件,可惜现在不付费基本就是摆设了,挺喜欢网页微信的,在任何电脑上都可以方便的和自己手机连接,可惜挂了。

    看 webrtc 挺好玩的,就撸了个网站,帮各个设备建立直连通道,方便文件分享和文字内容相互 copy。

    现在只在 android 和 window 中使用着,苹果那一套据说 webrtc 支持不是很好,还没有测试和做兼容性。

    www.pplink.link
    Supplement 1  ·  Dec 5, 2019
    非常感谢 v 友们的建议和反馈,让这个东东又完善了一些。

    但是之前一个使用 mac 的兄弟说连接不上,我又无法联系上他,所以只能再求助这里使用 mac 的 v 友帮忙反馈一下了:用 safari 的话,能否连接上并进行文件和文字的互传? 界面有没有明显的错乱问题?

    多谢!!

    另外,有海外的兄弟,啥时候方便帮我测试一下,想看一下海外和国内能否直连,直连后的传输速度如何。

    再次多谢!!
    Supplement 2  ·  Feb 28, 2020

    PPlink2.0上线

    1. 增加“视频连接”功能,点到点实时视频流,可实现屏幕分享、视频会议、直播、视频合成等

    2. 修复部分文件传输功能的bug

    3. UI调整

    135 replies  •  2021-02-23 20:37:58 +08:00
    1  2  
    ❮ ❯
    en20
    en20
    Dec 1, 2019 via iPhone
    1
    试了一下做的很好,有开源吗
    bshu
    bshu
    OP
    Dec 1, 2019 via Android
    2
    @en20 你用 iphone 访问的?可以用吗? apple 那套我还一点没有测试过呢
    wudaonongjian
    wudaonongjian
    Dec 1, 2019
    3
    这个真的蛮好的,方便,点赞,开源吗
    syahd
    syahd
    Dec 1, 2019 via Android
    4
    qq 局域网传输不好吗?不也是全平台
    bshu
    bshu
    OP
    Dec 1, 2019 via Android
    5
    前端基于 simple-peer 和 quasar,后端 expressjs,因为开始是基于兴趣,所以是在原有的商业项目的基础上构建出来的,要开源估计先要擦屁股,很大一部分代码要重写的,否则哪敢放出来
    en20
    en20
    Dec 1, 2019
    6
    @bshu 是的我用 ip 和 安卓,一个局域网
    bshu
    bshu
    OP
    Dec 1, 2019 via Android
    7
    @whwq2012 qq 已经 n 年不在用了,麻烦,基本是用微信和网页微信,任何电脑都比较方便,可惜微信网页不让用了,强制推客户端。局域网和广域网都可以用。
    bshu
    bshu
    OP
    Dec 1, 2019 via Android
    8
    @en20 哈哈,看来 ios 对 webrtc 的支持越来越好,多谢,多谢
    syahd
    syahd
    Dec 1, 2019
    9
    @bshu #7 qq 可以 pc,ipad,手机端三端登录,而微信最多手机+ipad/pc。这不比微信方便?除非你平时不同时用 pc 端和 ipad 端。。
    bshu
    bshu
    OP
    Dec 1, 2019 via Android
    10
    @whwq2012 没用 ipad,现在手机屏挺大的,用 pad 不知用来干嘛
    mitong3269
    mitong3269
    Dec 1, 2019
    11
    今晚试一试
    bshu
    bshu
    OP
    Dec 1, 2019 via Android
    12
    @mitong3269 有问题的话就反馈一下,多谢了
    oreoiot
    oreoiot
    Dec 1, 2019 via iPhone
    13
    直接网页调用摄像头扫码好评。
    bshu
    bshu
    OP
    Dec 1, 2019 via Android
    14
    @oreoiot 被逼的,国内 android 的浏览器对 webrtc 或 blob 支持的不好,chrome 和 firefox 最完善,但是人家没有扫码功能,所以只能自己在网页里实现了
    xiangyuecn
    xiangyuecn
    Dec 1, 2019❤️1
    15
    首页标题可以改一下,收藏起来真费力,睡一觉起啦估计就不知道这个链接啥玩意了😂😂 比如:

    old: pplink
    new: pplink - 大文件传送、电脑 /手机互连
    bshu
    bshu
    OP
    Dec 1, 2019 via Android
    16
    @xiangyuecn 哈哈,OK !多谢!
    feixia5712
    feixia5712
    Dec 1, 2019 via Android
    17
    挺好用的,我们上传的文件会在服务器记录吗?
    feixia5712
    feixia5712
    Dec 1, 2019 via Android
    18
    希望大佬能开源,造福人类
    bshu
    bshu
    OP
    Dec 1, 2019 via Android
    19
    @feixia5712 两端是穿透后直连,服务器只是帮着建立连接,转发一下连接命令,数据不走服务器。但是如果两侧确实无法穿透,数据是分片后通过不同的 relay 中继转发过去的,中继那里也是网络底层透传,中间无解析无缓存无记录。以后希望把中继也部署在用户端,类似 P2P,多点转发,但每个都只是少量几个随机数据块
    feixia5712
    feixia5712
    Dec 1, 2019 via Android
    20
    @bshu 谢谢大佬,学习了,最后能开源出来就好了,公司内部使用,或者其他用,就更好了
    AoTmmy
    AoTmmy
    Dec 1, 2019 via Android
    21
    不错不错,好东西收藏了,等大佬一个 github🌸
    mineV
    mineV
    Dec 1, 2019
    22
    https://github.com/LingyuCoder/SkyRTC-demo
    发现一个类似的开源项目
    bshu
    bshu
    OP
    Dec 1, 2019 via Android
    23
    @mineV 额..,github 上用 webrtc 实现数据传送的项目有些确实不错,开始做的时候也研究过,比如 FilePizza,大家感兴趣可以搜来玩玩。不过,你发的这个之前确实没怎么留意,因为是用于实时视频和音频的项目。因为做这个开始主要就是为了方便远程传文件,所以音视频的应用没考虑,实现应该更容易,只是用来干嘛呢?没想明白
    GPLer
    GPLer
    Dec 2, 2019 via Android
    24
    error:1010 怎么破。
    EUMENDIES
    EUMENDIES
    Dec 2, 2019
    25
    学习一下
    bshu
    bshu
    OP
    Dec 2, 2019 via Android
    26
    @GPLer 正常情况下这个错误不应该产生,表示建立连接的消息缺少对端地址,可能哪里 bug 了吧,麻烦刷新一下页面,重新尝试一下
    HarveyJ
    HarveyJ
    Dec 2, 2019
    27
    试了下感觉挺不错的,有点意思,支持一下
    blackcurrant
    blackcurrant
    Dec 2, 2019
    28
    纯网页端吗?不需要服务器吗?
    anyele
    anyele
    Dec 2, 2019 via Android
    29
    就缺可以分享文字的
    nkcfc
    nkcfc
    Dec 2, 2019 via Android
    30
    @whwq2012,并不是全平台,linux 下 QQ 几乎没法用。
    bshu
    bshu
    OP
    Dec 2, 2019 via Android
    31
    mengkun
    mengkun
    Dec 2, 2019
    32
    不错。还可以即时聊天,比 https://file.pizza 好用!收藏了~
    bshu
    bshu
    OP
    Dec 2, 2019 via Android
    33
    需要服务器帮助建立双方连接
    Hyseen
    Hyseen
    Dec 2, 2019
    34
    用 macOS 和 iPhone 简单测了一下,没发现什么问题,收藏了
    JunoNin
    JunoNin
    Dec 2, 2019❤️1
    35
    设置我的名字是不可以自定义的吗
    bshu
    bshu
    OP
    Dec 2, 2019 via Android
    36
    @Hyseen 请问一下,是用自带的 safari 测试的,还是 chrome ?多谢!
    Hyseen
    Hyseen
    Dec 2, 2019❤️1
    37
    @bshu #36 Safari 和 Chrome 都试了
    wei193
    wei193
    Dec 2, 2019
    38
    当年毕业设计就是这个玩意!一直想重新上线,看着毕业设计的代码觉得太垃圾就放弃了。
    bshu
    bshu
    OP
    Dec 2, 2019 via Android
    39
    @JunoNin 可以设置自己的名字,在你的设备下方更改就可以了。刚刚试了一下发现改不了,应该是有 bug,稍后我会吃掉它。名称是保存在本地浏览器的,设置一次以后再使用都有效,名字不会上传服务器,话说所有数据都不会经过服务器,服务器只负责双方建立连接的信令管理
    JunoNin
    JunoNin
    Dec 2, 2019
    40
    @bshu 好的呢,刚刚试了试想重置名字发现不行,收藏啦
    bshu
    bshu
    OP
    Dec 2, 2019 via Android
    41
    @Hyseen 哇,多谢!意外之喜,因为之前 safari 一点没有测试,ui 兼容性都没有做,看来问题不大。前端首次用 quasar ui 框架,很不错,赞一个。做前端的兄弟可以尝试一下
    steveway
    steveway
    Dec 2, 2019
    42
    好东西
    愿意开源就更好了
    支持~
    TomStark
    TomStark
    Dec 2, 2019
    43
    收藏了.很棒
    qyvlik
    qyvlik
    Dec 2, 2019❤️1
    44
    还可以看看火狐的 https://send.firefox.com ,临时大文件传送。
    fhvch
    fhvch
    Dec 2, 2019
    45
    有点意思!
    dixeran
    dixeran
    Dec 2, 2019 via Android
    46
    NAT 严格点是不是就不能用了,比如 4G 网络这种
    bshu
    bshu
    OP
    Dec 2, 2019 via Android
    47
    @qyvlik 这个也用过,是个好东东,我如果有钱也把这个功能整进去,除了可以同步直传还可以异步传,一个安全,一个方便,随便选
    qyvlik
    qyvlik
    Dec 2, 2019
    48
    @bshu #47 重点:钱,哈哈。
    bshu
    bshu
    OP
    Dec 2, 2019 via Android
    49
    @dixeran 可以用,实在无法穿透的,采用了分片多中继透明转发,具体见上方回复。估计这种用户多了,现在部署的中继带宽不够。初步两种方案,一个是把中继集成到合适的用户端,一个寻求国内便宜带宽服务商,多中继随机分片转发,对网络稳定性要求没那么高。还在权衡中。
    Maboroshii
    Maboroshii
    Dec 2, 2019
    50
    希望开源,学习一下
    zifangsky
    zifangsky
    Dec 2, 2019
    51
    感觉很不错,先收藏试用一下
    dreamweaver
    dreamweaver
    Dec 2, 2019
    52
    哈哈你这个 logo 真就 piedpiper 呗
    bshu
    bshu
    OP
    Dec 2, 2019
    53
    @dreamweaver 嘿嘿,被你抓包了,我一个理工男,既没有审美,也没设计能力。在 iconfont 中找啊找啊,就看到他了,然后就拎过来了。除了被我老婆抓包,你是第二个。
    imdong
    imdong
    Dec 2, 2019❤️1
    54
    建议添加自定义 path,不然两台电脑,可能不太方便输入。

    比如:自定义别名 + 密码
    Zeonjl
    Zeonjl
    Dec 2, 2019 via iPhone
    55
    收藏🙏
    FakeLeung
    FakeLeung
    Dec 2, 2019
    56
    传了个视频。
    本地能打开,发给对方打不开。

    bshu
    bshu
    OP
    Dec 2, 2019
    57
    @imdong 这个之前确实考虑过,当时觉得自定义的话需要配合一大推的安全机制才能更好保护用户不被恶意用户骚扰。而且也实现了连接前需要对方手动确认的功能,只是没有开放,主要考虑就是怕用户麻烦,还有就是远程连接时的方便性。比如我在家里的电脑打开网站,记下网址,然后我在公司或其他任何地方和设备都可以直接接入。现在的机制是只有关闭网站那么下次进来就是一个随机的新地址,可以防止恶意用户接入。如何是自定义的话,基本就是半永久,被探测到的风险还是较高的,加上密码的话确实可以一定程度上增加安全性。好,这个功能我记下了,稍后帮你加上去。当然也是本地浏览器验证奥,服务器不参与任何数据和业务逻辑。
    bshu
    bshu
    OP
    Dec 2, 2019
    58
    @FakeLeung 数据是分片加密传输的,传输后会校验和重组,如何校验失败并且尝试自我修复仍然无法解决,那么会出现这个提示。一直在完善和修复这个机制中。方便的话请重新连接,然后传输一下这个视频试试。另外,请问你用的是什么系统和浏览器,多谢!!
    FakeLeung
    FakeLeung
    Dec 2, 2019
    59
    @bshu #58
    我:macOS14.15 ,chrome 78.
    对方不清楚:估计是 Windows10,chrome78
    dcalsky
    dcalsky
    Dec 2, 2019 via Android
    60
    有同学用 iphone 在微信或者 qq 里打开测试过吗?我想问问兼容性
    bshu
    bshu
    OP
    Dec 2, 2019
    61
    @FakeLeung 好的,多谢。因为服务器不参与连接传输,所以也不清楚具体什么原因。只能说如何对方没有中止的情况下(对方显示 100%可能还没有传输完奥,因为文件大的时候百分比计算是不准确的),确实偶尔碰到出错的情况,原因包括当时网络、校验等。我会继续排查代码,完善大文件传输的机制。
    bshu
    bshu
    OP
    Dec 2, 2019
    62
    @dcalsky 真是好心人,iphone 中微信和 qq 我也想知道呢。不过 android 上的微信,可以发文件和文字内容相互传送,但是下载不行,估计 iphone 也差不多。qq 吗?没有测
    binjjam
    binjjam
    Dec 2, 2019
    63
    已感谢,NB !
    bshu
    bshu
    OP
    Dec 2, 2019
    64
    @xiangyuecn 网站名称已经按你的建议完善,谢谢你!

    @JunoNin 自定义名字 bug 也已经修复,谢谢你! 修改名字后本地立即生效,之后所有的新连接将看到你的新名字;对于之前已经建立的连接,相互同步彼此信息时也会即时生效。
    baiduyixia
    baiduyixia
    Dec 2, 2019
    65
    有开源吗
    v3xe
    v3xe
    Dec 2, 2019
    66
    微信已经屏蔽了哇~
    kakudesu
    kakudesu
    Dec 2, 2019
    67
    我一般是用 xender,爱莫助手
    bshu
    bshu
    OP
    Dec 2, 2019
    68
    @v3xe 屏蔽?啥意思?我这里可以访问啊。微信之屏蔽了下载功能啊
    jsq2627
    jsq2627
    PRO
    Dec 2, 2019
    69
    如何知道自己传输的文件是经过 relay 还是 p2p 呢?
    bshu
    bshu
    OP
    Dec 2, 2019
    70
    @kakudesu 额..., 我满怀希望打开他们的 web 版,结果让我装 app,我只能:你好,再见
    bshu
    bshu
    OP
    Dec 2, 2019
    71
    @jsq2627 如何用电脑的话,把鼠标放到连接成功的小标志上,会有提示;如果在手机上,只能根据连接成功后的图标区分了
    kakudesu
    kakudesu
    Dec 2, 2019
    72
    @bshu #70 是的,就麻烦在装 app 上,好在手机客户端都有
    honjow
    honjow
    Dec 2, 2019
    73
    厉害。很方便
    jsq2627
    jsq2627
    PRO
    Dec 2, 2019
    74
    @bshu #71 电脑连了手机,电脑显示 P2P,手机显示 Relay,难道可以不一致?
    bshu
    bshu
    OP
    Dec 2, 2019
    75
    @jsq2627 刷新一下试试,先刷新最开始打开的那个,再刷新另一个去重新连接。做的时候已经统一考虑两边的连接情况了,不应该出现这种情况。如果出现显示不一致,可能就是 bug
    hkyyx
    hkyyx
    Dec 2, 2019
    76
    PC 端:win7 Chrome V71.0.3578 手机端:安卓 8.0 X 浏览器 V2.9.0 (点击下载后进度条能跑完,但是下载管理器没有任何东西) 神奇浏览器 V0.8.7 (点击下载后能弹出下载框,但显示正在解析文件且下载速度为 0,目前以过去 5 分钟了,任然这样,测试文件:一张 450KB 的 jpg 图片,一个 12KB 的 docx 文件,一个 27KB 的 xlsx 文件)
    differentPlayer
    differentPlayer
    Dec 2, 2019
    77
    我双开了 2 个 chrome 选项卡,好像没办法使用。。。
    bshu
    bshu
    OP
    Dec 2, 2019
    78
    @hkyyx 在 pplink 帮助里已经针对此问题有相应的提示,国内产的 android 手机浏览器在下载时,可以正常传输,但是保存文件时浏览器不支持页面里的内容下载,只是把粗暴的链接丢给了一个负责下载的子应用,所以导致无法正常保存,这个研究了半天还没有很好的解决方案。手机版的 chrome 和 firefox 不存在此问题,能正常使用。
    differentPlayer
    differentPlayer
    Dec 2, 2019❤️1
    79
    好像同处一个 wifi 下就一直显示 xxx 正在链接,后来把手机切到 4G 之后,就提示 error 1010
    bshu
    bshu
    OP
    Dec 2, 2019
    80
    @differentPlayer 支持多个 tab 的使用,如果是互连测试,请刷新那个访问复制了的链接的页面,应该可以正常连接,这个问题好像只出现在同一个浏览器下第一次访问时。如果还不行那请确认一下 你的 chrome 版本了
    jackrebel
    jackrebel
    Dec 2, 2019
    81
    @bshu iphone 用得很爽。ios13, 至少。 我已经用起来了。666。。。。
    bshu
    bshu
    OP
    Dec 2, 2019
    82
    @differentPlayer 先感谢一下,刷新一下页面试一下吧,如果还是不行,估计被你踩了一个大 bug。1010 这个问题我之前以为偶然出现,现在看来应该是这个 bug 导致的你连不上,今天我会修复掉。修复后通知你。谢谢你!!
    differentPlayer
    differentPlayer
    Dec 2, 2019
    83
    Google Chrome 已是最新版本
    版本 78.0.3904.108 (正式版本) ( 64 位)

    刷新网页一直是这 2 个 tips

    正在连接 36423ab0-14ce-11ea-afbb-95dced5392d1 ...
    a578e1d0-14cf-11ea-afbb-95dced5392d1 开始连接你...
    jackrebel
    jackrebel
    Dec 2, 2019
    84
    @bshu 建议换个微信能认的域名后缀, 不要用 link 这种了, 多一层微信的警告框。
    bshu
    bshu
    OP
    Dec 2, 2019
    85
    @differentPlayer 哈哈,大哥,你这个是第一次碰到。请确认一下,一个地址是 www.pplink.link,没有后缀参数,刷新后,在这个页面里复制“我的网址”,然后在另一个 tab 中打开刚复制的链接,可以刷新几次。我想不通为什么会出现两个提示,一个是连接,一个是被连接,除非你刚刚打开连接一个对端,另一个对端也在连接你,哪有这么巧奥。
    bshu
    bshu
    OP
    Dec 2, 2019
    86
    @jackrebel OK,我会再测试一下,微信是不是有后缀导致的警告。另外不建议在微信里使用,微信里无法下载。建议用 chrome、firefox、safari,原生 chrome 没有二维码扫描,但是在 pplink 的首页的右上侧有二维码扫描功能,可以直接扫描连接电脑的。
    bshu
    bshu
    OP
    Dec 2, 2019
    87
    @differentPlayer 能连上吗?要不我开个连接,你连我 : https://www.pplink.link/?r=9a141930-14c6-11ea-afbb-95dced5392d1
    differentPlayer
    differentPlayer
    Dec 2, 2019
    88
    @bshu 刚去看了会 webRTC,没看到不好意思。

    可能我刚刚的表述有误,2 个 Tab 一个显示“正在连接 36423ab0-14ce-11ea-afbb-95dced5392d1 ...”,另一个显示“a578e1d0-14cf-11ea-afbb-95dced5392d1 开始连接你...”。

    重新测试之后,还是不行。
    bshu
    bshu
    OP
    Dec 2, 2019
    89
    @differentPlayer 那只能我修改掉 1010 那个之后,你再试一下吧
    justfun
    justfun
    Dec 2, 2019
    90
    太强了 一直需要这个功能。4g 网络竟然也可以
    sdalkesioe
    sdalkesioe
    Dec 2, 2019
    91
    这个有点厉害了。测试了下,一般的文件传输都没问题;但是传了一个 2.5G 的视频,每次传到 50%左右,手机端浏览器就奔溃了,传好几次都成功不了。
    bshu
    bshu
    OP
    Dec 2, 2019 via Android
    92
    @sdalkesioe 哈哈, 你狠,我都没试过这么大文件,这个在网站帮助里也有说明,和接收端的浏览器和手机有关,为了兼容性,采用方案现在还有局限性,pc chrome 最大 2g,手机一般内存的五分之一左右,后面再出一个版本,尽量做到单文件没有大小限制
    Yws
    Yws
    Dec 3, 2019
    93
    下载速度有点慢额,手机端上传成功了,电脑端下载不下来,而且按暂停后再按继续就卡住了。
    bshu
    bshu
    OP
    Dec 3, 2019 via Android
    94
    @differentPlayer 对连接那部分做了优化和完善,方便的话再试一下能否连接,多谢
    bshu
    bshu
    OP
    Dec 3, 2019 via Android
    95
    @Yws 请问手机是连 wifi 还是 4g,电脑端用什么浏览器,哪个版本,暂停后手机有没有进入休眠?
    differentPlayer
    differentPlayer
    Dec 3, 2019
    96
    @bshu 刚测试还是不行。

    昨天回家之后也拿家里的网络测试了,一样的结果。

    补上 2 个 chrome 窗口的 wss 图,不知道对你是否有帮助

    aHR0cHM6Ly9zbS5tcy9pbWFnZS93cXJiQWY3NFNUa2pJRmwKaHR0cHM6Ly9zbS5tcy9pbWFnZS9iemhQbGo3TG44QVV3Mnk=
    bshu
    bshu
    OP
    Dec 3, 2019
    97
    @differentPlayer wss 这个是加密过的,密码是动态的,只能在当时那个运行环境下解密,我也解不开。我现在也不好推测到底哪里有问题了。连接服务器慢?防火墙?浏览器禁用本地存储?太多潜在原因了,我也很难定位了。你手机可以连接吗?
    peterjose
    peterjose
    Dec 3, 2019
    98
    不错 还没有学习 webrtc 传输几百 kb 正常吗
    bshu
    bshu
    OP
    Dec 3, 2019 via Android
    99
    @peterjose 不太正常,如果是 4g,这个不稳定,不好说。如果 wifi 下,直连情况下可跑满上行,relay 情况下 10m 左右可以轻松达到
    Yws
    Yws
    Dec 4, 2019
    100
    手机连 4g,电脑是谷歌浏览器 3.0.1.6,暂停后手机没有进入休眠
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1277 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 97ms · UTC 21:42 · PVG 05:42 · LAX 13:42 · JFK 16:42
    ♥ Do have faith in what you're doing.