为什么WebRTC需要信令服务器?

为什么WebRTC需要信令服务器?,webrtc,Webrtc,WebRTC是一种协议,定义了对等网络之间媒体数据的传输方法。理解。它还可以在RTP/UDP之上工作。这也理解 在讨论信令服务器时,提到需要进行兼容性检查/通道启动。。。诸如此类的工作 我的问题是:如上所述, 1) 这是否意味着信令服务器是强制性的 2) WebRTC是否具有在没有信令服务器的情况下直接与另一个对等方对话的智能 3) 与WebRTC相关的每一篇文章都以“这是浏览器与浏览器之间的通信”这句话开头,这是否意味着WebRTC不能在a)带摄像头的嵌入式设备[没有浏览器]之间使用,b)其他

WebRTC是一种协议,定义了对等网络之间媒体数据的传输方法。理解。它还可以在RTP/UDP之上工作。这也理解

在讨论信令服务器时,提到需要进行兼容性检查/通道启动。。。诸如此类的工作

我的问题是:如上所述,

1) 这是否意味着信令服务器是强制性的

2) WebRTC是否具有在没有信令服务器的情况下直接与另一个对等方对话的智能

3) 与WebRTC相关的每一篇文章都以“这是浏览器与浏览器之间的通信”这句话开头,这是否意味着WebRTC不能在a)带摄像头的嵌入式设备[没有浏览器]之间使用,b)其他地方的浏览器之间使用

4) 此外,如果使用WebRTC,与传统的流媒体方式相比,有什么好处?[我真的不知道传统的方式]

我知道这是一个理论问题。尽管如此,我看到这种问题可能在不同的背景下在互联网上流传。希望这个问题能给出一些架构级别的答案。谢谢

  • 是的,信令是强制性的,以便交换ICE候选者等,以便对等连接知道其对等者是谁
  • 不,如果没有某种交流,它怎么知道它的同伴
  • 不,这并不意味着。我用raspis和其他本机设备做了很多实验,我通过WebRTC对等连接将视频流传输到浏览器页面
  • 你在说什么?你的意思是使用WebRTC与Flash和中央服务器的好处?WebRTC是点对点的,如果你将它与GetUserMedia和Html5结合起来,你就不需要flash和中央媒体服务器来处理所有的媒体交换
    您需要一个信令服务器,以便能够在两个任意对等点之间建立连接;这是当今使用的互联网架构的简单现实

    为了联系网络上的其他对等方,您需要首先知道其IP地址。第一个问题已经出现了。你需要知道你的同伴的IP地址是什么。如果没有坐在这些计算机旁的人通过电话互相呼叫并口述IP地址,您将如何从对等点A到对等点B获取这些信息?为此,每个对等方首先发现自己的地址,然后将其发送给另一个对等方。这又带来了两个问题:一个对等方如何发现它向外的IP地址是什么(它可能与它自己的IP有很大的不同),以及它如何与另一个地址未知的对等方进行通信

    这就是信号服务器的用武之地。两个对等方在彼此建立连接之前都已连接到信令服务器。因此,他们使用信令服务器代表他们转发消息,直到他们协商了一种直接的通话方式。在没有第三方帮助的情况下,可以在本地子网上协商连接;但这种情况可能非常罕见,我甚至不确定规范是否解决了这个问题

    至于3):WebRTC可以在任何设备上实现,它只是一个协议;它并不仅仅局限于浏览器


    4):从一个浏览器流到另一个浏览器的“遗留”方式总是涉及中间的中继服务器。这台服务器有很大的CPU和带宽需求,是一个昂贵的瓶颈。WebRTC支持直接P2P连接,无需中间人,轻量级信令服务器除外。而且,以前也没有真正的开放标准;大多数情况下,你会以这样或那样的方式向Adobe支付一些钱。

    大部分答案都已经涵盖,我只是想补充一点。当谷歌在4年前首次创建webRTC并将其开源时,它完全是独立完成的,没有任何信号功能

    然而,最近谷歌收购了Firebase,所以我敢打赌,很快他们将为WebRTC公开一个完整的端到端解决方案,这样我们所有人都可以更轻松地实施它


    说到Firebase,我试过了,还不错,基本完成了:

    WebRTC不能解决发现问题(也不应该解决)。

    WebRTC知道如何在没有信令服务器的情况下直接与另一个对等机通信,但不知道如何发现另一个对等机。发现是一个固有的问题,所以我有点困惑,人们期望WebRTC为他们解决它

    想一想:你打算怎么打电话给我?你将如何引导你的电脑开始与我联系,而不是与十亿其他人联系?通过GPS坐标?电子邮件地址?静态IP?irc?即时消息?脸谱网?电话号码

    还有,我怎么知道你什么时候打电话来?我的电脑会响吗?使用常规的web技术有数百种方法可以解决这个问题,因此,如果WebRTC指定了一种特定的方法,那么它将对您造成伤害。您的应用程序的上下文可能会提供最佳联系方式。也许我在某个在线论坛或虚拟房间的在线游戏中遇到你

    从技术上讲,您不需要WebRTC的信令服务器,只要您有其他方式向您的对等方获取SDP报价(一段文本),并收到对等的SDP回复,无论是通过电话短信、IM、irc、电子邮件还是信鸽。在Chrome或Firefox中尝试此操作:-单击“提供”(等待20秒),将输出发送给您的朋友,他将输出粘贴到其端的同一字段中并单击Enter,然后让他们发送回答案,您将答案粘贴到“答案”字段中并单击Enter。您现在应该已连接,并且从未涉及任何连接服务器

    JSFIDLE工作原理:它将所有ICE候选项打包到SDP中,这可能需要几秒钟的时间,一次就可以为您提供所需的一切

    一些高级功能,如在通话中更改视频源的数量等。