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

msp*_*anc 5 webrtc

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

如何在WebRTC对等连接中创建数据通道等问题的答案并不完全有用,因为它们不太详细.具体来说,他们对SDP内容一无所知.

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

Kev*_*vin 11

这是一个页面,其中包含一些显示信令过程如何工作的图表.基本上,你首先设置一些客户端的东西:

  • PeerConnectionFactory; 生成PeerConnections,
  • PeerConnection等; 一个与你想要的另一个同伴的每个连接(通常为1),
  • MediaStream; 连接客户端设备的音频和视频.

然后你生成一个 SDP offer

peerConnection.createOffer();  
Run Code Online (Sandbox Code Playgroud)

在呼叫方并将其发送给被叫方.被调用者设置了这个offer

peerConnection.setRemoteDescription(insert-the-offer-here);
Run Code Online (Sandbox Code Playgroud)

并生成一个 SDP answer

peerConnection.createAnswer();
Run Code Online (Sandbox Code Playgroud)

并将其发送回呼叫者.调用者接收answer并设置它.

peerConnection.setRemoteDescription(insert-the-answer-here);
Run Code Online (Sandbox Code Playgroud)

呼叫者和被呼叫者都接听电话

onAddStream() {...} //needs to be implemented in your code
Run Code Online (Sandbox Code Playgroud)

当呼叫方的被叫方offer设置当被叫方的来电answer设置.此回调表示连接的开始.
您也可以使用ICE(STUN/ TURN)来避免firewallNAT发布,但这是可选的.虽然在生产代码中,您可能仍希望实现它.

注意:Webrtc文档很少,可能会有所变化,把你读到的关于webrtc的所有内容(至少是现在写的任何内容)都带上了一点点...