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

开源,肝爆了! 基于 WebRTC 端到端的桌面共享/文本传输/文字传输已经都达到了可用状态!撒花~

  •  4
     
  •   molika · 26 天前 · 8531 次点击

    没想到拖了这么久,当初顶的小目标终于实现了! 文件传输/桌面共享 已经都支持了!!!! 撒花~ 撒花~ 撒花~

    项目起因是因为要经常传一些文件到 win 服务,下载网盘啥的好麻烦,又要登录又要先下载客户端,也想了解下 webrtc 技术。摸着需求就开始过河了!!

    终于这个上个周末把 UI 一些状态 桌面共享 文件传输 ack 都加上了。

    项目后端 Go 前端是 react nextjs GO server 只作为信令转发,p2p 建立后传数据文本/共享桌面/文件都不会经过服务器,安全!隐私!

    开源地址 https://github.com/MatrixSeven/file-transfer-go

    体验地址 https://transfer.52python.cn/

    AjGeuSn rKFhPYK

    备注:

    本项目和 server 不提供降级服务,p2p 建立失败,则无法传输任何数据。 p2p 的建立成功与否 取决于你的 nat 网络模型。

    下面是 AI 提供的 nat 场景 ,大家可以参考:

    NAT 类型主要分为以下四种,根据其对外部连接的限制程度不同,影响打洞的成功率:全锥形 NAT ( Full Cone NAT ) 特点:内部主机的 IP 和端口映射到固定的公网 IP 和端口,任何外部主机都可以通过该公网地址访问内部主机。 打洞友好程度:最高,易于穿透。

    地址限制锥形 NAT ( Restricted Cone NAT ) 特点:只有内部主机主动向外部主机发送过数据包的外部 IP ,才能通过 NAT 的公网 IP 和端口访问内部主机。 打洞友好程度:较高,但需要先建立通信。

    端口限制锥形 NAT ( Port Restricted Cone NAT ) 特点:进一步限制,只有内部主机主动向外部主机的特定 IP 和端口发送过数据包,外部主机才能从相同的 IP 和端口访问内部主机。 打洞友好程度:中等,需要精确的端口匹配。

    对称 NAT ( Symmetric NAT ) 特点:每次与不同外部主机通信时,NAT 分配的公网端口都不同,映射关系严格依赖于目标 IP 和端口。 打洞友好程度:最低,穿透难度最大。

    第 1 条附言  ·  26 天前
    佬们,服务器上不会有任何设备信息。 所以没法通过设备默认取匹配建立链接,只能通过取件码。如果有特殊需求项目是 MIT ,大家 fork 走随便改,随便用。

    这个项目的初心就是 即开即用,传输文件/共享桌面/同步文字 。

    因为自己高频用这种东西,了解相关技术后也想自己造一造,搞一个 UI/功能符合自己操作习惯的工具。原则就是直观,直接,不拖泥带水,开门即是主题,传输文件 or 文字 or 共享桌面。

    最后 尽管现在达到了能用的状态,但是依旧还有很多小问题,大家可以提 issue 来反馈 或者 发表建议,也可以 PR 合并一些自己想要的功能和 fix ,都欢迎哈。

    近期计划:
    1.docker 镜像发布
    2.桌面共享开启语音通道开关,增加实用性
    3.用户自定义 stun/turn 服务配置
    4.增加类似于 RTT 的机制,最大化利用带宽
    102 条回复    2025-09-09 02:39:27 +08:00
    1  2  
    molika
        101
    molika  
    OP
       22 天前   ❤️ 1
    @wenyifancc 下个版本
    hanguofu
        102
    hanguofu  
       11 天前
    希望分享~ 请问能不能用这个工具实现实时音视频通话的效果 ?
    1  2  
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2564 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:55 · PVG 19:55 · LAX 04:55 · JFK 07:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.