1

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

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

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

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

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

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

当前对象:

{"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"}]
4

1 回答 1

2

您在这里有一个错字: [{"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,因为它不知道这些。

于 2018-07-31T09:14:30.090 回答