前几天一直在线传文件,后面就想着自己弄一个。 WebRTC 也更加放心。 这次直接体验了一把 nextjs + go 。 构建出来的文件直接单文件部署即可,前端资源也一并在二进制包。非常 nice 。 -port z 指定端口
目前已经实现了 文件传输。 桌面共享 开发中。
佬们可以 star 或者拍代码(大部分 AI ) 哈哈哈
1
molika OP 文字和桌面还是适配。目前只能文件
|
![]() |
2
hellodigua 28 天前
有点牛,请问下文件不经过中转服务器,是点对点传输吗?
|
![]() |
3
hellodigua 28 天前
你这个整一个正式的域名,我甚至愿意保存长期使用
|
4
yiroonli 28 天前
支持
|
5
molika OP @hellodigua 是的 数据不经过我的服务器,通过打洞然后点到点直传,不然你传个文件 我带宽都爆掉了哈哈哈。
|
6
molika OP @hellodigua 不出意外 会一致挂着。 就这个域名。
|
![]() |
8
andyskaura 27 天前
我有做一个类似的,不感觉方向都走错了,没你这个直观。explorer.kuraa.cc
|
9
molika OP @andyskaura 侧重点不一样,我这个就是传文件。用啥传啥就完事了
|
![]() |
10
Smilencer 27 天前
|
![]() |
11
TimPeake 27 天前
界面看着有点 tailwindcss 风
|
![]() |
12
cat 27 天前
试了一下,没打通
|
![]() |
13
skiy 27 天前
我现在用 croc 命令行传。。。
|
14
wKong753900 27 天前
哈哈,我去年也有这么个想法,写开源项目写到一半就没继续了
|
![]() |
15
sujin190 27 天前
不搞个生成二维码
|
![]() |
16
blankmiss 27 天前
打不通一点
|
![]() |
17
realpg PRO 神仙应用 star 了 打算忙完自己搭建一个
可不可以 feature request? 后端加个配置项 allowTextRelay: false, allowPictureRelay: false, pictureRelaySizeLimit: 102400, 然后前端对应实现一下 |
18
molika OP @blankmiss 和 NAT 网络有关系, 我这里没有搭建中续服务器,所以打洞失败会直接失败,而不是降级使用中续。因为我最初就认为用这个 p2p 其实是为了不过服务器。
|
19
molika OP @blankmiss 和 NAT 网络有关系, 我这里没有搭建中续服务器,所以打洞失败会直接失败,而不是降级使用中续。因为我最初就认为用这个 p2p 其实是为了不过服务器。!!!
|
22
molika OP @wKong753900 一无所知,到现在 其实很快,了解原理 就可以 pua ai 启动了
|
![]() |
24
ShundL 27 天前
已 star
|
![]() |
25
kehuai 27 天前
|
26
undefinedsymbol 27 天前
界面不错,不过试了一下,失败了,这类应用感觉如果想做好,最终还是需要走服务器,不过走服务器又会涉及到隐私问题了。。。
|
![]() |
27
oneisall8955 PRO 来个 docker 镜像及 compose 模板
|
![]() |
28
baichi 27 天前
域名 52python 然后项目一行 python 都没有 😑
|
29
caocong 27 天前
我自己练手也写了类似的小工具使用 webrtc 同步文本、传输文件、共享屏幕,op 这个界面和我用 ai 生成的风格好相似,我个人目标是尽量避免搭建信令服务器做成纯前端的东西,如果是纯局域网内可以实现,跨网够呛,而且 stun 服务器使用公用公开的服务器的能力很有限,不如自己搭的
|
![]() |
31
Tink PRO |
![]() |
32
tengyoubiao 27 天前
界面写的很好,我学习 webrtc 之后发现信令服务器、打洞和中继都需要单独做服务,从实用的角度看还是用网盘方便
|
![]() |
33
kuxiaobai 27 天前
试用了一下,接收文件不成功,有可能是我把浏览器的 webrtc 功能给关闭了
|
![]() |
34
le4tim 27 天前 via Android
请问啊,webrtc 打洞,有一端如果是对称型的,webrtc 能实施生日悖论的端口碰转吗?就是用变换源端口去发几百个 udp 包?或者变换目的端口发几百个包
|
![]() |
35
lidedongsn 27 天前
webrtc tcp 模式
|
![]() |
37
Satansickle 27 天前
WebRTC 传输的必须条件是什么?试了好几个网络都失败
|
![]() |
38
Tink PRO ![]() @abolast #36 已经开源过了,但是代码很烂,自己写的就不行,再加上 llm 一顿输出,凑活看吧。我这个比较特殊的一点是支持通过 cli 进行文件传输,cli 下只能走中转,因为 cli 下的 webrtc 很难搞。
https://github.com/goxofy/P2P-File-Transfer-WebRTC |
![]() |
41
testliyu 27 天前
跨网络之间就没办法使用了
|
42
snow0 27 天前
学习了下。对于手机的 4G/5G 移动数据上网(几乎 100%是对称型 NAT ),不提供 TURN 中转服务的话几乎 100%会失败,对吗
|
46
molika OP @Satansickle nat 模型
完全锥形 NAT ( Full Cone NAT ):所有外部请求都可以直接映射到内网设备,穿越最简单。 地址限制锥形 NAT ( Address-Restricted Cone NAT ):只允许来自已知 IP 的外部请求。 端口限制锥形 NAT ( Port-Restricted Cone NAT ):只允许来自已知 IP 和端口的请求。 对称 NAT ( Symmetric NAT ):为每个目标分配不同端口,点对点连接困难,需依赖 TURN 。 对称 NAT 没法打洞~ |
47
molika OP @undefinedsymbol 对的
|
![]() |
48
Wxh16144 26 天前
UI 不错,之前接触到一个「程序员小山与 Bug 」博主也写了一个类似的 https://github.com/sunzsh/internal-chat
|
![]() |
49
keven1024 26 天前
我也晒晒我的开源项目 015 ,golang+vue(nuxt3),和 op 的功能差不多,但是 op 的传输方案是用 webrtc ,我这边用的是服务器存储.
我的项目相比 op 的优势在于我这个支持分片上传和秒传,对有大文件上传需求的用户更友好 ![]() https://github.com/keven1024/015 ![]() 第二个优势是项目可扩展,目前基建差不多了,包括队列系统什么的,支持在原有文件上传基础上扩展新功能,现在加了一个图片压缩,未来会陆续加一些图片超分辨率,图片去背景等这种一次性场景的功能 ![]() ![]() |