我需要开发一个自定义的WebRTC对等体(我需要在Web浏览器和非浏览器之间建立音频或/和数据连接)。然而,我很难找到适当,清晰的握手阶段描述。
How to create data channel in WebRTC peer connection?等问题的答案并不完全有用,因为它们不太详细。具体来说,他们对SDP内容一无所知。
任何人都可以解释这个或推荐任何好的文档吗?
答案 0 :(得分:11)
Here is a page with some graphs showing how the signaling process works。基本上,你先设置一些客户端的东西:
然后您生成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
时的呼叫者。此回调表示连接的开始
您还可以使用answer
(ICE
/ STUN
)来避免TURN
和firewall
问题,但这是可选的。虽然在生产代码中,您可能仍希望实现它。
注意:Webrtc文档很少并且可能会发生变化,将您阅读的关于webrtc的所有内容(至少是现在编写的内容)都带有一点点...