【问题标题】:Why do we need an 'application server' for WebRTC?为什么我们需要 WebRTC 的“应用服务器”?
【发布时间】:2021-06-25 18:22:11
【问题描述】:

我正在开展一个项目,该项目允许 Internet 上的两个用户彼此进行视频通话。 为此,我正在使用 WebRTC。

在进行研究时,我偶然发现了一些文章。在这些文章中我不明白的一件事是,为什么我们甚至需要一个“应用程序服务器”?

第一个链接 - https://bloggeek.me/webrtc-server/ - 在这篇文章中,他们解释了不同的 WebRTC 服务器。我知道连接两个客户端需要“信号服务器”,但为什么我们需要一个“应用程序服务器”来部署我们的 HTML、CSS 和 JavaScript 文件?

我们不能只在浏览器上打开 index.html(没有服务器)和其中引用 index.js 文件的脚本标签 - 处理信令服务器并在浏览器上运行吗?

即使在这篇文章中:https://www.tutorialspoint.com/webrtc/webrtc_architecture.htm - 他们也提到“小心,因为 WebRTC 仅在服务器端工作。如果你只是用浏览器打开此页面,它将无法工作。你需要托管这些Apache 或 Node 服务器上的文件,或者您喜欢哪个。”

为什么我们需要一个服务器来渲染我们的 HTML、css 和 javascript 文件?为什么不能通过 WebRTC API 和浏览器上运行的信令服务器(在 index.js 中)建立连接来渲染视频元素?

【问题讨论】:

  • 其中的脚本标签引用 index.js 文件 - 这适用于 hello world 应用程序,但真正的应用程序需要从 Web 服务器提供服务,除了 webrtc 之外还有很多情况会在本地工作时失败。

标签: javascript node.js webrtc peerjs peer


【解决方案1】:

我了解连接两个客户端需要“信号服务器”...

是的,正确。

...但是为什么我们需要一个“应用服务器”来部署我们的 HTML、CSS 和 JavaScript 文件呢?我们不能只在浏览器上打开 index.html(没有服务器)和其中引用 index.js 文件的脚本标记 - 处理信令服务器并在浏览器上运行吗?

这与安全来源有关。浏览器本身并不信任 file: 来源。您需要使用 HTTPS。

现在,这个“应用程序服务器”不必有什么特别之处。任何静态 HTTPS 托管都可以。无需在服务器上运行任何应用程序。

【讨论】:

  • 但是我已经使用 HTML、CSS 和 javascript 制作了某些应用程序,例如简单的骰子游戏,并在浏览器上打开 index.html 没有任何问题。为什么这里的“安全来源”有问题?
  • @Adam 致力于 Chromium 的浏览器实施者和其他人一直非常积极地推动安全来源,以保护网络安全。不幸的是,这意味着很多较新的 API 在没有 HTTPS 的情况下根本无法工作。浏览器承担了更多的安全责任,不管用户想要什么,作为保护用户的一种方式。
  • 所以你的意思是说 WebRTC API 是新的,因此需要 HTTPS 来保证安全?
  • 非常感谢您的帮助!
猜你喜欢
  • 2011-05-08
  • 2018-03-08
  • 1970-01-01
  • 2010-11-24
  • 1970-01-01
  • 2012-02-22
  • 1970-01-01
  • 2017-05-16
  • 2021-08-16
相关资源
最近更新 更多