【问题标题】:Why I have to open data channel before send peer connection offer?为什么我必须在发送对等连接提议之前打开数据通道?
【发布时间】:2016-08-10 20:02:28
【问题描述】:
我正在编写一个简单的聊天应用程序,我想向我的应用程序添加一个共享绘图画布,该应用程序使用 数据通道 在它们之间发送画布点。但这是一个可选规范,所以我不想每次打开聊天都打开数据通道。如果我在建立对等连接后(提供后)打开数据通道,我无法通过数据通道发送任何数据。否则我可以发送(我从这里得到这一点:https://stackoverflow.com/a/35141500/5663292)。那么为什么我必须在peer connection offer之前打开数据通道呢?
【问题讨论】:
标签:
ios
swift
webrtc
rtcdatachannel
【解决方案1】:
SDP 提议/答案确定了您的同行希望如何准确地进行通信。优惠包括实际连接方法(IP/端口/TURN 中继)和您要使用的流、编解码器和频道。答案缩小了范围/确认了其他对等方可以接受的内容。
如果您想在通信中添加任何内容,例如额外的媒体流或数据通道,您需要通知其他对等方,否则它不会期望任何/可以'处理它。
流程总是:
- 准备好任何你想发送到本地
RTCPeerConnection远程对等方的东西
- 生成本地描述
- 将其发送给远程对等方
- 等待远程对等方的回答
- 包含遥控器的答案 (
setRemoteDescription)
只有这样,双方才能在同一页面上,才能真正相互交谈。必要时重复此过程,即当您对所发送的内容进行重大更改时。