构建服务器

在本文中,我们将为我们的电话应用程序设置服务器。服务器文件将看起来像一个普通的 Express 服务器文件,但有一个区别,即 Peer 服务器。

  1. 首先,在您之前创建的 HTML 和 CSS 文件的同一位置创建一个名为 server.js 的文件。这是我们应用程序的入口点,如我们的 package.json 文件中所定义。
  2. 您需要在 server.js 文件的顶部引入 Peer 服务器,以确保我们可以访问 Peer 服务器。
    js
    const { ExpressPeerServer } = require("peer");
    
  3. 然后您需要实际创建 Peer 服务器。在您之前的那一行下方添加以下代码
    js
    const peerServer = ExpressPeerServer(server, {
      proxied: true,
      debug: true,
      path: "/myapp",
      ssl: {},
    });
    
    我们使用 ExpressPeerServer 对象创建 Peer 服务器,并在过程中传递一些选项。Peer 服务器将为我们处理 WebRTC 所需的信令,因此我们不必担心 STUN/TURN 服务器或其他协议。
  4. 最后,您需要通过调用 app.use(peerServer) 来告诉您的应用程序使用 peerServer。您完成的 server.js 应该包含您在服务器文件中包含的其他必要依赖项,以及将 index.html 文件提供到根路径。更新 server.js,使其看起来像这样
    js
    const express = require("express");
    const http = require("http");
    const path = require("path");
    const app = express();
    const server = http.createServer(app);
    const { ExpressPeerServer } = require("peer");
    const port = process.env.PORT || "8000";
    
    const peerServer = ExpressPeerServer(server, {
      proxied: true,
      debug: true,
      path: "/myapp",
      ssl: {},
    });
    
    app.use(peerServer);
    
    app.use(express.static(path.join(__dirname)));
    
    app.get("/", (request, response) => {
      response.sendFile(`${__dirname}/index.html`);
    });
    
    server.listen(port);
    console.log(`Listening on: ${port}`);
    
  5. 您应该能够通过 localhost 连接到您的应用程序(在我们的 server.js 中,我们使用端口 8000,但您可能正在使用另一个端口号)。在您的终端中运行 yarn start(其中 start 指的是您在上一页的 package.json 中声明的脚本)。在浏览器中访问 localhost:8000,您应该会看到一个如下所示的页面:奶油色的背景,标题为粗体深绿色的“给朋友打电话”。“正在连接...”紧跟其下,“请使用耳机!”在其下方。接下来,是一个大的深绿色按钮,按钮上用奶油色背景色写着“呼叫”。

如果您想了解更多关于 Peer.js 的信息,请查看 GitHub 上的 Peer.js 服务器存储库