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

时间:2018-08-16 05:42:01

标签: javascript html5 webrtc offline

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

1 个答案:

答案 0 :(得分:3)

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

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

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

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

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

在您的情况下,您有3种选择:

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