WebRTC 信令服务器:您需要知道的一切

在WebRTC信令服务器之前,我们先简单解释一下什么是WebRTC。WebRTC 代表网络实时通信。它是一项强大的技术和开源流协议。

WebRTC 与 HTML5 兼容,它允许您向应用程序添加实时通信,以直接在浏览器和设备之间进行通信。你可以在没有任何插件的情况下做到这一点。所有主流浏览器都支持它,包括 Safari、Google Chrome、Firefox 和 Opera。

我相信你听说过 WebRTC 被用作点对点。但是,它也用于带有媒体服务器(如 Ant Media Server)的 WebRTC N2N(多播或多查看器)用例。现在让我们看看 WebRTC 信令服务器。

什么是 WebRTC 信令?

WebRTC 信令是在对等点之间建立、控制和终止通信会话的过程。为了让两个对等点开始相互连接,必须交换三种类型的信息:

  • 会话控制信息确定何时初始化、关闭和修改通信会话。它也可以用于错误报告。
  • 网络数据揭示了端点在 Internet 上的位置(IP 地址和端口),因此调用者(1. peer)可以找到被调用者(2. peer)。
  • 需要媒体数据来确定调用方和被调用方共有的编解码器和媒体类型。如果尝试启动通信会话的端点具有不同的分辨率和编解码器配置,则不太可能成功进行对话。通过使用会话描述协议 (SDP) 格式的提议和回答来在对等方之间交换媒体配置信息的信令发生。

什么是 WebRTC 服务器?

 提供在云中正确连接 WebRTC 会话或自托管以使您的 WebRTC 项目正常工作所需的功能的服务器称为“ WebRTC服务器”。

4 种类型的 WebRTC 服务器: 

  1. WebRTC 应用服务器
  2. WebRTC信令服务器 
  3. WebRTC 的 NAT 穿越服务器
  4. WebRTC 媒体服务器

什么是 WebRTC 信令服务器?

WebRTC 信令服务器是管理对等点之间连接的服务器。它仅用于信令。它有助于使一个对等点在网络中找到另一个对等点,协商连接本身,在需要时重置连接,然后关闭它。

所有对等点都向服务器发送通知,它们已连接,服务器将它们转发给对等点。通知请求可以通过 WebSocket 或 HTTP 协议完成,例如用于发送的 REST 和用于接收的长轮询。这两种方式都需要额外的努力或力量来接收通知消息。例如,WebSocket 需要处于活动状态,不能按需使用,或者长轮询需要在短时间内大量发出 HTTP 请求,从而消耗带宽。

WebRTC 信令如何工作?

webrtc 信号如何工作

图中的 WebRTC 信令服务器帮助两个对等点找到并相互连接。两个对等点都链接到该 WebRTC 信令服务器。在与您的配偶进行视频聊天或使用与您的银行的视频通信进行一些银行业务时,您也可能会以这种方式进行连接。

A 和 B 通过 WebSocket 连接或顺序 HTTP 请求连接到 WebRTC 信令服务器。

A与WebRTC信令服务器之间的通信称为offer-answer机制,是WebRTC的一部分。这些消息是 SDP 消息,而不是 WebRTC。这里发生的是 WebRTC 创建 SDP blob。这些是对等方需要向其他对等方发送信号以连接到会话的消息位。它可以使用 WebRTC 信令服务器来完成。

图中对等点 A 和对等点 B 之间的连接是为了在设备之间直接发送媒体而建立的。要到达那里,对等点必须首先通过 WebRTC 信号服务器进行通信。

没有用于传输提议和答案的标准信令协议。一些常用的信号机制:

长轮询:使用实时内容的 Web 应用程序必须获取事件以刷新其状态。不幸的是,没有浏览器请求或 WebSocket 连接的服务器无法更新网页。长轮询是一种类似于 Comet 的机制,它会在一段时间内向服务器发出请求以获取事件。

HTTP 流式传输:流式传输机制是一种长轮询,可以无限期地保持连接打开。即使将事件传输到客户端,连接也不会关闭。虽然这种机制解决了长轮询的一些问题,但它也有自己的问题。HTTP 流将不适用于某些网络中介,例如某些代理或网关,因为中介会在将答案发送到客户端之前对其进行缓存。此外,客户端缓冲和成帧技术可以列为它的其他问题。

Sip over WebSocket:在基于 Web 的应用程序中,通常通过 WebSockets 实现双向通信。这种双向全双工连接从 HTTP/HTTPS 协议开始,并在客户端和服务器握手期间将此协议升级为 WebSocket。通过这个连接,文本和二进制数据可以以全双工模式传输。由于最小数据帧大小为两个字节,因此这种连接技术在空闲时不会消耗网络流量。因此,使用特殊格式的数据可以在对等点之间进行信令。SIP over WebSocket 与 WebSocket 类似,只是不使用特殊格式的消息;一种在通知中使用 SIP 消息。所有客户端都通过 WebSocket 连接到服务器,并通过服务器发出信号。 

连接同行并开始交流听起来很容易。我们使用的互联网不允许我们像我们想象的那样轻松地与同行联系。要建立这种连接和通信,我们需要通过防火墙和 NAT 设备。

那么 WebRTC 信令机制如何处理互联网问题呢?

WebRTC 信令使用称为 ICE 的协议,该协议收集、交换,然后尝试使用 ICE 候选者连接会话。ICE 候选者是可以让对等点相互连接的潜在地址。通过三种方法,ICE 可以计算出最快、最简单的NAT 穿越路由,以使数据包到达其目标对等方。

1.方法:UDP连接

使用从设备操作系统和网卡获取的 IP 地址建立 UDP 连接。这将不可避免地在 NAT 后面的设备上失败。这就是忽略此选项的原因。

2.方法:STUN服务器

STUN 服务器是 WebRTC 信令中最常用的方法。简而言之,它是这样工作的。STUN 服务器检查传入请求的 IP 地址和端口,然后将该地址发送给对等方作为响应。这允许应用程序提供一个可公开访问的地址,然后通过信令机制将其转发给另一个 WebRTC 对等点。

3. 方法:TURN 服务器。

ICE 使用的最后一种方法是 TURN 中继服务器。TURN 服务器用于在对等点之间传输音频、视频和其他实时数据。它不共享信号信息,因为它支持对等方之间的实时数据交换。TURN 服务器具有公共地址,因此对等方可以连接到它们,即使它们位于 NAT 和防火墙之后。

我们获得了有关信令和 WebRTC 信令服务器的详细信息。正如我们在博文开头提到的,WebRTC 不仅用于点对点连接。在 N2N 场景中,需要的不仅仅是 WebRTC 信令服务器。WebRTC 服务器之一是 WebRTC 媒体服务器。

为什么 N2N WebRTC 流需要 WebRTC 媒体服务器?

在一些N2N场景下,1人可以向多人广播,或者多人可以向多人广播。您可以想到您参加的网络研讨会和社交媒体直播等示例。

将 WebRTC 媒体内容流式传输给大量观众时,您必须使用媒体服务器。这是因为我们不想为每个用户建立 P2P 连接。这样的场景会消耗大量资源,不太现实。让我们举个例子。

假设您想使用 WebRTC 流式传输 2 Mbps 视频并向 200 位观众广播一场精彩的会议。如果没有媒体服务器,您用来访问每个观众的设备将需要使用 400 Mbps 上行链路连接。想象一下创建这样的设置会有多困难。

媒体服务器如何工作

在这种情况下,解决方案是使用媒体服务器,例如 Ant Media Server。广播公司的设备将媒体内容发送到媒体服务器,媒体服务器又将该内容发送到观众的设备。媒体服务器的最大特点不仅在于它可以向 N 人发送广播,而且媒体服务器处理转码和编码,甚至将 WebRTC 流重新打包到其他协议,进行缩放,甚至添加自适应流功能让观众开心。媒体服务器也可以充当 WebRTC 信令服务器。Ant Media Server 可以做所有这些,甚至更多。

Ant Media Server已为全球 120 多个国家的 1525 多家客户提供服务。来自教育、现场拍卖、广播和电视广播、服务提供商、政府机构和游戏公司等不同领域的客户通过使用 Ant Media Server 并受益于其功能来增强他们的业务。

作者:Hamit Demir
原文链接:https://antmedia.io/webrtc-signaling-servers-everything-you-need-to-know/

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论