我无法使用位于NAT后面的两个单独的公共IP地址在浏览器之间建立WebRTC连接。通常通过因特网),其不允许仅使用STUN信息进行连接,而是需要TURN服务器协助。
我已经成功地在LAN中建立了连接,但到目前为止,我还没有遇到任何关于如何使用javascript webrtc形成简单的基于TURN的连接的说明。似乎所有的教程都很高兴,当他们收到“类型中继”类型的sdp并就此结束。我也从我的伙伴那里得到了“类型中继”sdp,但是我从来没有使用TURN over internet连接到ICE,我也没有找到关于这种情况的说明(我估计这应该是非常典型的)。
我尽了最大的努力,根据火狐的关于:webrtc已经为我提供了ICE连接的努力,其中ICE原始连接的远程和本地候选都是具有正确的TURN服务器、公共IP和-page端口的转向中继地址。但是,这个ICE连接失败的原因对我来说是未知的。
此外,我试图找到所有与TURN服务器相关的神秘安全要求,但我不确定Chrome或Firefox到底需要什么级别的设置。我当前的coturn配置如下:
external-ip=13.X.X.X/172.X.X.X
listening-port=3478
log-file=stdout
lt-cred-mech
max-port=36980
min-port=36940
fingerprint
no-cli
realm=example.com
user=usernamehere:passwordhere
verbose
cert=/etc/letsencrypt/live/example.com/cert.pem
pkey=/etc/letsencrypt/live/example.com/privkey.pem
no-sslv2
no-sslv3我很想看到一个教程或说明,其中有人已经做了一个简单的代码,实际上是用来传递数据访问互联网使用webrtc和TURN服务器。到目前为止,我已经找到了仅使用相同浏览器的示例,使用websockets或成功使用STUN信息。
只要有了ICE连接成功的表单,我就会很开心。
编辑:结果(双关语)是我的信号方法太慢了。要使用基于UDP的TURN中继服务器,您需要比我的信号方法(将人复制到另一个选项卡)更快地交付候选对象。Websockets提供了一种足够快地传递信令信息的方法。
发布于 2019-10-25 17:24:22
你通常可以简单地在这里添加你的轮到凭证:
config: {
'iceServers': [
{ url: 'stun:stun.l.google.com:19302' },
{
url: 'turn:domain:port',
credential: 'password',
username: 'username'
}
]
}我总是使用以下的TURN-config:
listening-port=80
listening-ip=internalIP //can be empty
relay-ip=intermalIP //can be empty
external-ip=publicIP
realm=yourDomain
server-name=yourDomain
lt-cred-mech
user=User:Passhttps://stackoverflow.com/questions/58553991
复制相似问题