【发布时间】:2017-07-02 18:04:53
【问题描述】:
在 WebRTC 中,事情发生的顺序似乎非常明确。
在本地,我使用getUserMedia 获取本地流,并将流保存到变量中。我创建了一个RTCPeerConnection 对象,我将其命名为pc,并将本地流添加到它。我将onaddstream 事件处理程序添加到pc,以便我可以将远程用户的流保存到变量中,并最终将其设置为audio 等HTML 元素的src 属性。我还在我的pc 上设置了onicecandidate 事件处理程序来处理候选冰。
此时,有一个RTCPeerConnection,但还没有远程用户“连接”。这是“提议/答案”开始的地方。假设我正在使用 websockets 发送信号,我收到了一个报价,这是一条名为“报价”的消息,包含一个 SDP 对象。我该如何拒绝它,这应该如何在两个端点上处理?
例如,我可以发送一条消息“拒绝”,该消息将转发给其他用户。我的 RTCPeerConnection 仍然存在,也许我希望能够接听其他电话。照原样,我不必对我的 RTCPeerConnection 做任何事情,对吗?发送报价的其他用户是否必须做任何事情?他是否必须关闭那个特定的 RTCPeerConnection?我认为不会,因为他所做的只是创建一个 SDP 对象,然后在 WebRTC 之外,通过 websockets 将对象发送给其他用户。不过,他确实使用setLocalDescription 添加了报价。当offer被拒绝时,他需要对此做些什么吗?
当我创建报价并将其发送给其他用户时,如果我从未得到回复,我是否可以将报价发送给第三个用户,然后如果他发送了答案,我就与他保持联系?
我没有找到任何关于 RTCPeerConnection 生命周期的信息。
【问题讨论】:
标签: javascript webrtc