WebRTC实现浏览器上的音视频通信

本文深入探讨WebRTC技术,介绍如何在浏览器中实现音视频通信。涉及ICE、STUN、TURN服务器的角色,以及getUserMedia、RTCPeerConnection和RTCDataChannel等关键API的使用,为点对点的实时通信提供了详细的技术解析。
摘要由CSDN通过智能技术生成

概述

WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。

webRTC协议介绍

ice

交互式连接机构 (ICE)是一个框架,允许您的网络浏览器与同行连接。有许多原因,为什么从对等A到同行B的直升连接将不起作用。它需要绕过防火墙,防止打开连接,给您一个独特的地址,如果像大多数情况下,您的设备没有公共 IP 地址,并通过服务器中继数据,如果你的路由器不允许您直接与对等连接。ICE 使用 STUN 和/或 TURN 服务器来实现此目的,如下所述。

STUN

NAT 的会话横向公用设施 (STUN)是一个协议,以发现您的公共地址,并确定任何限制,在你的路由器,将阻止与同行的直接连接。

客户端将向 Internet 上的 STUN 服务器发送请求,该服务器将回复客户的公共地址,以及路由器 NAT 后面是否访问客户端。
 

NAT

网络地址翻译 (NAT)用于为您的设备提供公共 IP 地址。路由器将具有公共 IP 地址,连接到路由器的每个设备都将有一个私有 IP 地址。请求将从设备的私有 IP 转换为路由器的公共 IP,并具有独特的端口。这样,您不需要每个设备都有独特的公共 IP,但仍可以在互联网上发现。

某些路由器将限制谁可以连接到网络上的设备。这可能意味着,即使我们有 STUN 服务器找到的公共 IP 地址,也没有人能够创建连接。在这种情况下,我们需要转向转向。

TURN

一些使用 NAT 的路由器采用一种称为"对称 NAT"的限制。这意味着路由器将只接受您以前连接过的对等的连接。

使用 NAT 周围的中继进行横向(转)旨在通过打开与 TURN 服务器的连接并通过该服务器中继所有信息来绕过对称 NAT 限制。您将创建与 TURN 服务器的连接,并告诉所有对应方将数据包发送到服务器,然后转发给服务器。这显然伴随着一些开销,所以它只使用,如果没有其他选择。
 

SDP

会话描述协议 (SDP)是描述连接的多媒体内容的标准,如分辨率、格式、编解码器、加密等,以便在数据传输时两个对等可以相互理解。这在本质上是描述内容而不是媒体内容本身的元数据。

因此,从技术上讲,SDP 并不是真正的协议,而是用于描述设备之间共享介质连接的数据格式。

记录 SDP 远远超出了此文档的范围;然而,这里有一些值得注意的事情。

webRTC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值