我需要开发一个自定义WebRTC对等体(我需要在Web浏览器和非浏览器之间建立音频或/和数据连接)。但是,我很难找到对握手阶段的正确而清晰的描述。
对诸如How to create data channel in WebRTC peer connection?之类的问题的答案并不完全有用,因为它们不太详细。具体来说,他们对SDP内容一无所获。
任何人都可以解释一下或推荐任何好的文档吗?
最佳答案
Here is a page with some graphs showing how the signaling process works。基本上,您首先要设置一些客户端内容:
然后您生成一个
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
和NAT
问题,但这是可选的。尽管在生产代码中,您可能还是想要实现它。注意:Webrtc文档非常稀缺,并且随时可能更改,请花一点时间来阅读您所阅读的有关Webrtc的所有内容(至少是到目前为止编写的所有内容)...
关于webrtc - WebRTC对等协商工作流的外观如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33974667/