我需要開發一個自定義的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