建立数据通道的常用方法是在发起端调用createDataChannel()方法,在接收端监听datachannel事件,当通道建立完成后,两端都触发open事件,从而在两端都能获取数据通道的对象。
这是WebRTC建立数据通道的默认方法,被称为带内协商。这种方法的优点是可以随时动态创建数据通道。
WebRTC规范里还引入了另外一种建立数据通道的方法,名为带外协商。这种方法在 两端都调用 createDataChannel() 方法,任何一端都无须监听 datachannel 事件。
//带外协商模式
let dataChannel = pc.createDataChannel("MyApp Channel", {
negotiated: true
});
dataChannel.addEventListener("open", (event) => {
beginTransmission(dataChannel);
});
requestRemoteChannel(dataChannel.id);