我整了个 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 云 |