【问题标题】:WebRTC issue on closing peer connection in have-local-offer stateWebRTC 关闭对等连接的问题
【发布时间】:2016-02-09 06:10:45
【问题描述】:

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

我引入了一个会话启动取消选项,在发出会话启动请求且远程用户尚未应答(例如,处于用户警报状态)期间,该选项可供用户使用。当用户请求会话取消时,发起端的 RTC 对等连接信令状态为“have-local-offer”。在启动取消时,我在对等连接上调用关闭,并看到随着 RTC 信令状态(如我所料)变为“关闭”,在启动端发生了信令状态更改。

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

我已经查看了标准,并且似乎应该在接收方生成事件(即,在“有本地报价”状态下关闭时应该发送关闭)。

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

谢谢,

【问题讨论】:

  • 您在规范中究竟在哪里找到了对正在生成的接收方事件的支持?
  • 好点 - 我假设在处理关闭时,达到任何状态('将对象的 RTCPeerConnection 信号状态设置为关闭。')该状态是对等连接的状态并反映了一种状态在连接的两端,如果状态变为关闭,则相应的远程也变为关闭。如果正确,则在稳定状态下传播关闭,从状态机的角度来看,似乎远程会发生某些事件 - 无论如何,在没有进入实际的底层实现的情况下,你能指出处理这个问题的讨论吗?谢谢!

标签: session webrtc


【解决方案1】:

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

为了在close 上传达某些内容,必须在类似于onicecandidate 的API 中显示某些内容,但不存在这样的内容。

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

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

【讨论】:

  • 非常感谢您的解释 - 是的,向遥控器发出信号没有问题。
猜你喜欢
  • 1970-01-01
  • 2013-08-07
  • 2017-08-25
  • 1970-01-01
  • 1970-01-01
  • 2022-08-02
  • 2021-07-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多