V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
GeekHub
kekxv
V2EX  ›  WebRTC

求助关于 WebRTC 只能在局域网建立成功问题

  •  
  •   kekxv · 55 天前 · 1364 次点击
    这是一个创建于 55 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我整了个 golang + websocket + WebRTC 的,原本是为了屁 2 屁传文件,

    但是现在WebRTC只在局域网内建立成功, 这样的话,就只能使用 websocket 通过服务端进行转发,

    但是这样跑服务器带宽,有点贵啊,能给点啥子建议或者帮忙看看是因为什么只能在局域网建立成功?

    项目在 https://github.com/kGoChat

    用的是 golangvue

    14 条回复    2020-09-23 13:34:08 +08:00
    zhlssg
        1
    zhlssg   55 天前
    需要 https 吧
    kekxv
        2
    kekxv   55 天前
    @zhlssg 挂在外网之后没有使用 https 也成功,所以没有测试 https,我再试试
    xylophone21
        3
    xylophone21   55 天前
    测一下路由器的类型
    kekxv
        4
    kekxv   55 天前
    @zhlssg 测试了 https,也没成功

    @xylophone21 这个咋侧?我有个公网 IP 的主机一起建立连接,也失败了
    xuchdeid
        5
    xuchdeid   55 天前
    需要配置 iceServers

    new RTCPeerConnection({
    iceServers: [
    {
    urls: `turn:${hostName}:3478`,
    username: "***",
    credential: "***",
    },
    {
    urls: `stun:${hostName}:3478`,
    },
    ],
    })
    suconghou
        6
    suconghou   55 天前
    你配置 iceServer 了吗? 这个肯定要 turnserver 辅助打洞的,p2p 也不是 100%能建立起来的,实在不行还是要靠 stunserver 中转
    silenzio
        7
    silenzio   55 天前
    @suconghou 说反了吧 stun 是打洞 turn 是转发
    silenzio
        8
    silenzio   55 天前
    建议查询一下: NAT 内网穿透 等关键字
    比如: https://www.jianshu.com/p/84e8c78ca61d
    你需要在公网上部署一个 signaling 服务器, stun 服务器, 一个 turn 服务器.
    可以试试开源的 coturn
    这个网站可以测试部署是否成功 https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
    suconghou
        9
    suconghou   55 天前
    @silenzio 嗯, 说反了
    kekxv
        10
    kekxv   55 天前
    @xuchdeid @suconghou 配了 iceServer 的 stun,没有不是 turn,然后测试的 stun 服务器也没有问题。

    @silenzio #8 我配置了这个服务器,测试部署也成功了。

    关键是,我用一台公网机器(公网 ip 直接配在 PC 上)和另一个局域网的机器进行连接,然后失败了!!!!
    kekxv
        11
    kekxv   53 天前
    目前外网也能成功了,但是局限性比较大,算了,看看先处理功能吧
    silenzio
        12
    silenzio   52 天前
    @kekxv 有个小提醒, 上云的话, 不要选弹性 ip, 会有大几率穿透失败, 所有流量走 turn 转发
    比如华 x 云
    lol173
        13
    lol173   7 天前
    我的 turn 服务,连不上 ,报 reason: allocation timeout,又遇到这样的问题吗? stun 也不行,求指教
    @kekxv
    kekxv
        14
    kekxv   6 天前 via iPhone
    @lol173 用做好的 docker 容器先测试下
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1034 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 22:36 · PVG 06:36 · LAX 15:36 · JFK 18:36
    ♥ Do have faith in what you're doing.