0

为了测试我是否获得了接力候选人,我正在使用这个页面:http: //googlechrome.github.io/webrtc/samples/web/content/peerconnection/trickle-ice/。为了从 chrome 40 进行测试,我在那里提供了我的轮到 url 和凭据。单击收集候选人后,我看不到接力候选人。在 firefox 36 上做同样的测试,我找到了中继候选人。可能是什么问题?为了进一步调查这个问题,我查看了 wireshark 日志。我发现,来自 firefox 的 stun 请求格式包括 -

STUN 146 Allocate Request UDP lifetime: 3600 user: lazy realm:  with nonce

但从 chrome 来看,这略有不同——

STUN 70 Allocate Request UDP

似乎请求代码不一样。此外,来自 chrome 的请求不包括生命周期、用户和领域属性。

4

1 回答 1

1

我知道这个问题已经有点老了,但是根据我的经验,TURN 服务器描述格式(关于身份验证)在 Chrome 和 Firefox 中必须采用不同的格式。

对于 chrome,您可以使用:{"url":"turn:user@turn.example.com", credential:"password"},

对于 Firefox,格式为:{"url":"turn:turn.example.com", 'hasCredentials': true, username:"user", credential:"password"},

也许您可以查看源代码以查看示例中如何设置回合服务器。

编辑:同时服务器列表的格式在规范中发生了变化(https://www.w3.org/TR/webrtc/#rtciceserver-dictionary)。目前我知道的所有实现都支持以下格式:

{ "urls": ["turns:turn.example.org", "turn:turn.example.net"],
   "username": "user",
   "credential": "myPassword",
   "credentialType": "password"
}

然而,在 Edge 上,您似乎需要在 url 中包含查询字符串 ?transport=udp 。

于 2015-06-04T07:48:56.477 回答