【问题标题】:Create PeerConnection exception: Failed to construct 'RTCPeerConnection': Malformed RTCIceServer创建 PeerConnection 异常:无法构造“RTCPeerConnection”:格式错误的 RTCIceServer
【发布时间】:2018-07-30 16:48:01
【问题描述】:

我正在使用appRTC to make 演示应用程序。我已经成功设置了以下内容,但得到了 JSON 格式的堆栈,该堆栈响应 Turn-server API 返回。

  • 使用 SSL 进行安全连接,使其在 Google Chrome 上运行(完成)
  • 实现自定义 WebSockets(完成)
  • 为 TurnServer 开发自定义 API(完成)

我在控制台日志中收到以下错误。

创建 PeerConnection 异常:无法构造“RTCPeerConnection”:格式错误的 RTCIceServer

无法启动信号:无法读取 null 的属性“addStream”

我已尝试将响应作为 ice 服务器对象

当前对象:

{"iceServers":[{"urls":["stun:stun.l.google.com:19302"]},{"urls":["turn:domain.com:8080?transport=udp","turn:domain.com:8080?transport=tcp","turn:domain.com:8080"],"username":"test","credential":"password"}],"lifetimeDuration":"86400s","blockStatus":"NOT_BLOCKED","iceTransportPolicy":"all"}

也试过了:

[{"urls":["stun:stun.l.google.com:19302"]},{"urls":["turn:domain.com:8080?transport=udp","turn:domain.com:8080?transport=tcp","turn:domain.com:8080"],"username":"test","credential":"password"}]

也试过这个:

[{"urls":["turn:domain.com:8080?transport=udp","turn:domain.com:8080?transport=tcp","turn:domain.com:8080"],"username":"test","credential":"password"}]

【问题讨论】:

  • ice 服务器对象是什么样子的?它应该是一个对象数组,每个对象都有一个 urls 属性和(如果是转 url)用户名和凭据
  • @PhilippHancke 我已经更新了我的答案。我已经包含了到目前为止我尝试过的对象

标签: node.js webrtc apprtc rfc5766turnserver


【解决方案1】:

这里有一个错字: [{"urls":["stun:stun.l.google.com:19302"} 试图在不关闭数组的情况下关闭 url。 这应该是 [{"urls":["stun:stun.l.google.com:19302"]} 不过,这不会导致格式错误的 RTCIceServer 错误。

根据您的评论,这似乎是调用的结果 new RTCPeerConnection({"iceServers":[{}]}) -- 空对象不是有效的 RTCIceServer。

我也建议不要通过 "lifetimeDuration":"86400s","blockStatus":"NOT_BLOCKED" 到 RTCPeerConnection 因为它不知道这些。

【讨论】:

  • 抱歉,当我在此处粘贴回复时出现拼写错误,因为我覆盖了一些值。我已经更新了我的答案,请看一下
  • 这里是 TURNSERVER API URL,我用来获取响应。你可以看到这个link的真实回复
  • 我有我正在测试的演示网址,你可以自己测试一下,可能我在某个地方错了。
  • 您正在调用“new RTCPeerConnection({"iceServers":[{}]})”,即使 http 响应看起来正确。并且空对象不是有效的冰服务器
  • 是的,这就是问题所在。 iceServers 不会被 TURN HTTP 请求自动填充?我应该对它们进行硬编码吗?
猜你喜欢
  • 2018-08-05
  • 1970-01-01
  • 2012-01-17
  • 1970-01-01
  • 1970-01-01
  • 2018-12-08
  • 2011-05-17
  • 2016-07-19
  • 2011-10-10
相关资源
最近更新 更多