如何在没有Internet连接的情况下通过本地网络进行WebRTC?

Ove*_*d D 6 javascript html5 offline webrtc

我想让两台不同的计算机打开一个静态html页面,并能够通过局域网上的WebRTC相互通信。在这种情况下,没有与外界的Internet连接。其中一台电脑将能够手动输入另一台电脑的IP地址,并使用该硬编码IP连接到它。ICE服务器是否必要?如果是这样,服务器本身是否需要互联网访问外部世界?

Rub*_*con 5

在这种情况下,您不需要ICE服务器。通常,您通常具有以下ICE候选人:

  • 主机(由客户端通过绑定到其本地分配的IP地址和端口而生成)
  • srflx(使用STUN生成服务器反射候选对象)
  • 中继(使用TURN生成中继候选)

因此,在没有ICE服务器的情况下,您将仅生成候选主机,这对于您的情况就足够了,因为两个用户都在同一个本地网络中。

尽管WebRTC启用对等通信,但它仍需要一个服务器来发信号:启用媒体和网络元数据的交换以引导对等连接。

因此,这里的主要问题是,您需要以某种方式在端点之间交换“要约”和“答案”,以便各方都能获得足够的彼此信息。通常,一些信令协议+公共服务器用于此目的。

您有3种选择:

  • 在2个浏览器之间建立直接的p2p WebSocket连接。不知道是否可能。看起来浏览器只能连接到其他端点,而不能监听。
  • 手动复制\粘贴“报价”和“答案” SDP,这也不好
  • 装有安装了信令服务器的第三台计算机,因此其他对等方将使用它在彼此之间交换“要约”和“答案”

  • 很好的解释。这是一些开源软件,您可以使用它来设置类似的内容。https://openvidu.io/建立在http://www.kurento.org/之上。示例非常容易理解,您可以在一台PC上将其设置为“服务器”。在这种情况下,您无需关闭第三台计算机。 (2认同)