为什么我必须在发送对等连接提议之前打开数据通道?

时间:2016-08-10 08:16:00

标签: ios swift webrtc rtcdatachannel

我正在编写一个简单的聊天应用程序,我想在我的应用程序中添加一个共享绘图画布,它使用数据通道在它们之间发送画布点。但它是一个可选的规范,因此我不希望每次打开聊天时都打开数据通道。如果我在建立对等连接后打开数据通道(在提供之后),我就无法通过数据通道发送任何数据。否则我可以发送(我从这里得到了这一点:https://stackoverflow.com/a/35141500/5663292)。那么为什么我必须在对等连接提供之前打开数据通道?

1 个答案:

答案 0 :(得分:1)

SDP提供/答案确定了您的同伴之间的沟通方式。该优惠包括实际连接方法(IP /端口/ TURN中继)您要使用的流,编解码器和通道。答案缩小了这个范围,确认了其他同行可以接受的内容。

如果您想要在通信中添加任何内容,例如其他媒体流或数据通道,您需要通知其他对等方,否则它不会期望任何/可以'处理它。

流程总是:

  1. 准备您要发送给本地RTCPeerConnection
  2. 上的远程同伴的任何内容
  3. 生成本地说明
  4. 将其发送给远程对等方
  5. 等待远程同行的回答
  6. 合并遥控器的答案(setRemoteDescription
  7. 只有这样,同一页面上的两个同伴才能真正相互交谈。必要时重复此过程,即每当您对发送的内容进行实质性更改时。