我需要开发一个自定义的WebRTC对等体(我需要在网络浏览器和非浏览器之间建立音频或/和数据连接)。然而,我很难找到握手阶段的恰当,清晰的描述。WebRTC如何看待对等协商工作流程?
对诸如How to create data channel in WebRTC peer connection?等问题的回答并不完全有帮助,因为它们不太详细。具体来说,他们没有提到SDP的内容。
任何人都可以解释这个或推荐任何好的文档?
我需要开发一个自定义的WebRTC对等体(我需要在网络浏览器和非浏览器之间建立音频或/和数据连接)。然而,我很难找到握手阶段的恰当,清晰的描述。WebRTC如何看待对等协商工作流程?
对诸如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(至少现在事情写成的)用一粒盐的一切......
你指的信号? – nick
是的。我明白,我的职责是建立一个渠道,以初步向同行交付报价/答案,但我找不到详细的说明如何构建这些消息。 – mspanc
从ICE开始:https://tools.ietf.org/html/rfc5245 - 它还涵盖了SDP的基本时刻。基本上,你需要从ICE和STUN/TURN开始,然后继续SDP。在那个阶段,您的应用程序将能够与SDP数据包进行交换并通过信令阶段。之后,您将需要为您的客户实现DTLS协议支持。然后是SRTP/SCTP。 – fycth