在 have-local-offer 状态下关闭对等连接的 WebRTC 问题

WebRTC issue on closing peer connection in have-local-offer state

我一直在测试的场景是尝试在远程应答之前取消请求的会话启动。我在两个 Nexus 7 设备之间使用设置 运行 Android 6.0.

我引入了一个会话发起取消选项,在发起会话发起请求且远程用户尚未回答(例如,处于用户提醒状态)期间,用户可以使用该选项。当用户请求会话取消时,发起方的RTC对等连接信令状态为"have-local-offer"。在取消启动时,我在对等连接上调用关闭,并看到随着 RTC 信令状态(正如我所期望的那样)变为 'close'。

,在发起端发生了信令状态更改

然而,在接收会话发起请求的一方,RTC 信令状态按预期进入状态 "have-remote-offer",但来自发起方的关闭事件似乎没有传播到接收方,接收方保持 "have-remote-offer" 状态。

我查看了标准,似乎事件应该在接收方生成(即,关闭状态应该在 "have local offer" 关闭时发送)。

显然,我可以围绕这种情况构建并通过会话服务器信令通道生成终止 - 但想了解我是否做错了什么或误解了规范?

谢谢,

您尚未成功协商连接,因此 RTCPeerConnection 与另一方的唯一通信方式是通过您提供的信令通道。

要在 close 上传达某些信息,必须在 API 中浮出水面,类似于 onicecandidate,但不存在这样的东西。

请记住,您的代码在两端,因此您可以轻松地自己发出信号。

抛开规范中的一个小错误 (which will hopefully go away soon),对等连接不会自行关闭。