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

2020-08-05 10:52:48 +08:00
 kekxv

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

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

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

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

用的是 golangvue

5268 次点击
所在节点    WebRTC
15 条回复
zhlssg
2020-08-05 11:01:06 +08:00
需要 https 吧
kekxv
2020-08-05 11:08:09 +08:00
@zhlssg 挂在外网之后没有使用 https 也成功,所以没有测试 https,我再试试
xylophone21
2020-08-05 11:15:23 +08:00
测一下路由器的类型
kekxv
2020-08-05 12:16:28 +08:00
@zhlssg 测试了 https,也没成功

@xylophone21 这个咋侧?我有个公网 IP 的主机一起建立连接,也失败了
xuchdeid
2020-08-05 12:55:44 +08:00
需要配置 iceServers

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

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

关键是,我用一台公网机器(公网 ip 直接配在 PC 上)和另一个局域网的机器进行连接,然后失败了!!!!
kekxv
2020-08-07 10:57:25 +08:00
目前外网也能成功了,但是局限性比较大,算了,看看先处理功能吧
silenzio
2020-08-08 09:06:08 +08:00
@kekxv 有个小提醒, 上云的话, 不要选弹性 ip, 会有大几率穿透失败, 所有流量走 turn 转发
比如华 x 云
lol173
2020-09-22 15:23:49 +08:00
我的 turn 服务,连不上 ,报 reason: allocation timeout,又遇到这样的问题吗? stun 也不行,求指教
@kekxv
kekxv
2020-09-23 13:34:08 +08:00
@lol173 用做好的 docker 容器先测试下
lol173
2020-09-30 09:21:43 +08:00
@kekxv 问题出在客户端,谢谢回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/695756

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX