我整了个 golang
+ websocket
+ WebRTC
的,原本是为了屁 2 屁传文件,
但是现在WebRTC
只在局域网内
建立成功,
这样的话,就只能使用 websocket
通过服务端进行转发,
但是这样跑服务器带宽,有点贵啊,能给点啥子建议或者帮忙看看是因为什么只能在局域网建立成功?
项目在 https://github.com/kGoChat
用的是 golang
和 vue
1
zhlssg 2020-08-05 11:01:06 +08:00
需要 https 吧
|
3
xylophone21 2020-08-05 11:15:23 +08:00
测一下路由器的类型
|
4
kekxv OP |
5
xuchdeid 2020-08-05 12:55:44 +08:00
需要配置 iceServers
new RTCPeerConnection({ iceServers: [ { urls: `turn:${hostName}:3478`, username: "***", credential: "***", }, { urls: `stun:${hostName}:3478`, }, ], }) |
6
suconghou 2020-08-05 12:57:00 +08:00
你配置 iceServer 了吗? 这个肯定要 turnserver 辅助打洞的,p2p 也不是 100%能建立起来的,实在不行还是要靠 stunserver 中转
|
8
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/ |
10
kekxv OP |
11
kekxv OP 目前外网也能成功了,但是局限性比较大,算了,看看先处理功能吧
|
12
silenzio 2020-08-08 09:06:08 +08:00
@kekxv 有个小提醒, 上云的话, 不要选弹性 ip, 会有大几率穿透失败, 所有流量走 turn 转发
比如华 x 云 |