RTCDataChannel 简单示例

RTCDataChannel 接口是 WebRTC API 的一个功能,可以让你在两个对等点之间打开一个通道,你可以通过该通道发送和接收任意数据。API 有意地类似于 WebSocket API,因此可以为每个 API 使用相同的编程模型。

在本示例中,我们会在一个页面内建立一条 RTCDataChannel 连接。这个场景是为了演示如何连接两个 Peer,实际场景并不常见。在本示例中解释了协商和建立连接的过程,定位和连接另外一台主机的场景在另外的一个示例中。

HTML

首先让我们看看我们需要的 HTML 代码。其实很简单,我们先有两个按钮用来链接和断开连接。

html
<button id="connectButton" name="connectButton" class="buttonleft">
  Connect
</button>
<button
  id="disconnectButton"
  name="disconnectButton"
  class="buttonright"
  disabled>
  Disconnect
</button>

然后我们还有一个输入框,用来输入消息。一个按钮,来触发发送事件。这个 <div> 是给 channel 中第一个节点使用的。

html
<div class="messagebox">
  <label for="message"
    >Enter a message:
    <input
      type="text"
      name="message"
      id="message"
      placeholder="Message text"
      inputmode="latin"
      size="60"
      maxlength="120"
      disabled />
  </label>
  <button id="sendButton" name="sendButton" class="buttonright" disabled>
    Send
  </button>
</div>

最后,还有一个小 DIV 用来显示收到的内容。这个 <div> 是给 channel 中第二个 peer 使用的。

html
<div class="messagebox" id="receivebox">
  <p>Messages received:</p>
</div>

JavaScript 代码

你可以