RTCDataChannel: protocol 属性

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流浏览器均已支持。

只读 RTCDataChannel 属性 protocol 返回一个字符串,其中包含正在使用的子协议的名称。如果在创建数据通道时未指定协议,则此属性的值为空字符串 ("")。

注意: 此属性的允许值由使用数据通道的网站或应用定义。

每个通道都可以具有定义的子协议的功能,例如,您的应用可以在一个通道上使用 JSON 对象作为消息,而另一个通道是纯文本,还有一个通道是原始二进制数据,甚至是其他格式。

一个字符串,用于标识用于在通道上交换数据的应用定义的子协议。如果尚未建立,则为空字符串 ("")。

示例

js
const pc = new RTCPeerConnection();
const dc = pc.createDataChannel("my channel", {
  protocol: "json",
});

function handleChannelMessage(dataChannel, msg) {
  switch (dataChannel.protocol) {
    case "json":
      /* process JSON data */
      break;
    case "raw":
      /* process raw binary data */
      break;
  }
}

规范

规范
WebRTC:浏览器中的实时通信
# dom-datachannel-protocol

浏览器兼容性

另见