如何看待WebRTC对等协商工作流程?

时间:2015-11-28 18:08:24

标签: webrtc

我需要开发一个自定义的WebRTC对等体(我需要在Web浏览器和非浏览器之间建立音频或/和数据连接)。然而,我很难找到适当,清晰的握手阶段描述。

How to create data channel in WebRTC peer connection?等问题的答案并不完全有用,因为它们不太详细。具体来说,他们对SDP内容一无所知。

任何人都可以解释这个或推荐任何好的文档吗?

1 个答案:

答案 0 :(得分:11)

Here is a page with some graphs showing how the signaling process works。基本上,你先设置一些客户端的东西:

  • PeerConnectionFactory;生成PeerConnections,
  • PeerConnection等;一个用于与您想要的另一个对等体的每个连接(通常为1),
  • MediaStream;连接客户端设备的音频和视频。

然后您生成rake routes SDP

offer
在呼叫者侧

并将其发送给被叫方。被调用者设置此peerConnection.createOffer();

offer

并生成peerConnection.setRemoteDescription(insert-the-offer-here); SDP

answer

并将其发送回调用者。呼叫者收到此peerConnection.createAnswer(); 并设置它。

answer

来电者和被叫者都可以接听

peerConnection.setRemoteDescription(insert-the-answer-here);

设置呼叫者onAddStream() {...} //needs to be implemented in your code 时的被叫方和设置被叫方offer时的呼叫者。此回调表示连接的开始 您还可以使用answerICE / STUN)来避免TURNfirewall问题,但这是可选的。虽然在生产代码中,您可能仍希望实现它。

注意:Webrtc文档很少并且可能会发生变化,将您阅读的关于webrtc的所有内容(至少是现在编写的内容)都带有一点点...