createDataChannel中标签的功能是什么以及如何正确使用它?

时间:2016-03-08 05:02:10

标签: javascript webrtc

我正在使用WebRTC,createDataChannel,参数label的功能是什么?我没有找到任何关于它的信息。

来自MDN

的API
  

RTCDataChannel createDataChannel(DOMString标签,可选   RTCDataChannelInit dataChannelDict);

如何正确使用它?

例如, A 是发送优惠的人, B 是接受优惠的人,他们希望互相发送消息< / strong>,当他们使用createDataChannel时,

(注意---->表示发送消息的能力)

(1)他们应该使用不同的label吗?

createDataChannel(LabelA)
  A ---------------------------> B
    <---------------------------
                         createDataChannel(LabelB)

(2)或者他们应该使用相同的label

createDataChannel(Same)
  A ---------------------------> B
    <---------------------------
                         createDataChannel(Same)

(3)或只有 A 需要createDataChannel,但 B 仍然可以将消息发送回 A 。因为this example就是这种情况。

createDataChannel(LabelA)
  A --------------------------> B
    <--------------------------

哪种情况是正确的用例?感谢

2 个答案:

答案 0 :(得分:4)

修改

你如何使用标签是主观问题,我更喜欢选项3,单个数据通道以两种方式传输数据。

来自WebRTC docsRTCDataChannel的标签属性说明:

  

label属性表示可用于将此RTCDataChannel对象与其他RTCDataChannel对象区分开的标签。允许脚本使用相同的标签创建多个RTCDataChannel对象。该属性必须返回创建RTCDataChannel对象时设置的值。

一天结束时,label只提供标记数据通道的选项。

答案 1 :(得分:2)

如果您需要获取标签的值,那么您可以从.label属性中获取它。如:

window.localConnection = localConnection = new RTCPeerConnection(servers,
      pcConstraint);

sendChannel = localConnection.createDataChannel('sendDataChannel');

console.log('Data channel label: ' + sendChannel.label);

您可以查看一下webrtc示例:https://github.com/webrtc/samples/tree/gh-pages/src/content/datachannel