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

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

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

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

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

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

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

    用的是 golangvue

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

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

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

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

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