我可以简化同一专用网络上的计算机的WebRTC信令吗?

时间:2015-11-05 11:25:02

标签: webrtc

WebRTC信令让我发疯。我的用例非常简单:自助服务终端和控制室webapp之间的双向音频对讲。两台计算机都在同一网络上。没有互联网接入,所有机器都有已知的静态IP。

我读到的一切都要我使用STUN / TURN / ICE服务器。这个缩略词是无穷无尽的,有助于我的偏头痛,但如果这是一个标准的应用程序,我只是打开一个端口,告诉其他客户端(如果需要我可以通过webapp执行此操作)并且另一个连接。

我可以使用WebRTC执行此操作吗?没有运行十几个信令服务器?

为了举例,您如何将运行在192.168.0.101上的浏览器连接到运行在192.168.0.102上的浏览器?

2 个答案:

答案 0 :(得分:2)

STUN / TURN与信令不同。 WebRTC中的STUN / TURN用于收集ICE候选者。信令用于在这两台PC之间传输会话描述(提供和回答)。 您可以使用免费的STUN服务器(如rake assets:clean stun.l.google.com)。还有免费的TURN服务器,但不是太多(这些资源非常昂贵)。一个是numb.vigenie.ca

现在没有信令服务器,因为这些是定制的,可以通过多种方式完成。这是我写的article。我最终在客户端使用Stomp,在服务器端使用Spring。

我猜你可以篡改SDP并静态注入ICE候选人,但是你仍然需要以某种方式在这两台PC之间交换SDP(以及那个dinamycally生成的每个会话)。即使考虑到配置不会改变,我想你可以交换一次(通过复制粘贴:)),将其存储在某处并每次都使用它。

答案 1 :(得分:1)

如果您的终点具有静态IP,那么您可以忽略STUN,TURN和ICE,它们只是在防火墙中钻孔的电动工具。大多数人都不是那么幸运。

由于WebRTC的结构如何,端点确实需要一种方法来提前交换呼叫设置信息(SDP),如媒体端口和密钥信息。你如何从A到B再回到A,这完全取决于你(“信令服务器”只是一个奇特的词),但大多数人使用的东西就像一个Web套接字服务器,tic-tac-toe客户发起的沟通。

我认为在没有互联网连接的私有网络上进行此项工作的最简单方法是在其中一台计算机上安装基本的Web套接字服务器。

作为一个例子,我推荐非常简单的https://github.com/emannion/webrtc-web-socket,它可以在没有互联网连接的私人网络上运行。

按照说明安装Web套接字服务器,例如: 192.168.1.101,然后使用Chrome或Firefox将两个端点连接到192.168.0.101:1337。在基本的演示Web UI中分享相机的两端,点击Connect,你应该很高兴。

如果您需要在没有任何服务器的情况下完全执行此操作,那么this answer to a related question至少会突出显示您需要发送的信息(在cut'n'paste演示中)。