跳转至

对等连接和信令整合(六)

你会学到什么

在这一步中,您将了解如何:

  • Node环境下使用http://Socket.IO运行WebRTC信令服务。
  • 使用该服务在对等体之间交换WebRTC元数据。

此步骤的完整版本位于step-05文件夹中。

替换HTML和JavaScript

将index.html的内容替换为以下内容:

<!DOCTYPE html>
<html>

<head>

    <title>Realtime communication with WebRTC</title>

    <link rel="stylesheet" href="/css/main.css" />

</head>

<body>

    <h1>Realtime communication with WebRTC</h1>

    <div id="videos">
    <video id="localVideo" autoplay muted></video>
    <video id="remoteVideo" autoplay></video>
    </div>

    <script src="/socket.io/socket.io.js"></script>
    <script src="js/lib/adapter.js"></script>
    <script src="js/main.js"></script>

</body>

</html>

将js/main.js替换为step-05/js/main.js的内容。

运行Node.js服务器

如果您的Node.js服务器没有运行,请在工作目录中调用以下命令来启动它 shell node index.js

(确保你使用的是上一步实现http://Socket.IO的index.js版本。)

在浏览器中打开localhost:8080。

在新的选项卡或窗口中再次打开 localhost:8080。 一个视频元素将显示来自getUserMedia() 的本地流,另一个将显示RTCPeerconnection传输的“远程”视频流。

每次关闭客户端选项卡或窗口时,都需要重新启动Node.js服务器。

在浏览器控制台中查看日志。

知识扩展

  • 此应用程序只支持一对一的视频聊天。 如何设计成让多个人共享同一个视频聊天室?
  • 这个例子的房间名称foo是硬编码的。 设置其他房间名称最好的方式是什么?
  • 用户如何分享房间名称? 尝试构建一个分享房间名称的方案。
  • 你想怎么改变这个应用程序

你学到了什么

在这一步你学会了如何:

  • Node环境下使用http://Socket.IO运行WebRTC信令服务。
  • 使用该服务在对等方之间交换WebRTC元数据。

此步骤的完整版本位于step-05文件夹中。

提示

  • WebRTC统计信息和调试数据可以从chrome://webrtc-internals中获得。
  • http://test.webrtc.org可用于检查您本地环境并测试您的相机和麦克风。
  • 如果您在缓存方面遇到奇怪的麻烦,请尝试以下操作:

按住ctrl键并点击Reload按钮,进行硬刷新
重新启动浏览器
从命令行运行npm cache clean。

下一步

了解如何拍照,获取图像数据,以及如何在对等体之间远程共享图像。