第9篇WebRTC-IOS之服务器及信令及信令交换以及会话描述协议

关键词:WebRTC服务器,信令的作用,信令交换,会话描述协议

一、WebRTC一对一

1.1 WebRTC服务器

 浏览器与浏览器通信,至少有两个方面需要服务器来做,如下:

1)  浏览器之间交换建立通信的元数据(信令)必须通过服务器

2)  穿越NAT和防火墙

1.2  信令的作用

通过一系列的信令来建立浏览器之间的通信。通过信令交换的内容如下:

a)用来控制通信开启或者关闭的连接控制消息

b)发生错误时用来彼此告知的消息

c)媒体流元数据,比如像解码器、解码器的配置、带宽、媒体类型等等

d)用来建立安全连接的关键数据

e)外界所看到的的网络上的数据,比如IP地址、端口等

在建立连接之前,浏览器之间显然没有办法传递数据。所以我们需要通过服务器的中转,在浏览器之间传递这些数据,然后建立浏览器之间的点对点连接。但是WebRTC API中并没有实现这些。

1.3为什么WebRTC不去实现信令交换?

不去由WebRTC实现信令交换的原因很简单:WebRTC标准的制定者们希望能够最大限度地兼容已有的成熟技术。具体的连接建立方式由一种叫JSEP(JavaScriptSession Establishment Protocol)的协议来规定,使用JSEP有两个好处:

a)在JSEP中,需要交换的关键信息是多媒体会话描述(multimedia sessiondescription)。由于开发者在其所开发的应用程序中信令所使用的协议不同(SIP或是XMPP或是开发者自己定义的协议),WebRTC建立呼叫的思想建立在媒体流控制层面上,从而与上层信令传输相分离,防止相互之间的信令污染。只要上层信令为其提供了多媒体会话描述符这样的关键信息就可以建立连接,不管开发者用何种方式来传递。

b)JSEP的架构同时也避免了在浏览器上保存连接的状态,防止其像一个状态机一样工作。由于页面经常被频繁的刷新,如果连接的状态保存在浏览器中,每次刷新都会丢失。使用JSEP能使得状态被保存在服务器上。

注:信令的发出是由信令服务器进行的,常用的信令服务器有stun,ice等。

1.4会话描述协议(Session Description Protocol

JSEP将客户端之间传递的信令分为两种:offer信令和answer信令。他们主要内容的格式都遵循会话描述协议(Session Description Protocal,简称SDP)。

2016年11月22日星期二

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WebRTC信令服务器是实现WebRTC通信的关键组件,它负责处理WebRTC会话的建立、维护和终止。WebRTC信令服务器起着桥梁的作用,连接了不同的对等端,并协调它们之间的通信。在WebRTC中,信令服务器用于传递信令消息,包括会话描述协议(Session Description Protocol,SDP)和候选者(candidates)信息,以便对等端能够互相发现、建立和交换媒体流。 关于WebRTC信令服务器的选择,有几种常见的方案。一种是使用专门设计的信令服务器,如开源的Janus、Kurento和Jitsi等。这些服务器提供了丰富的API和功能,可以满足各种复杂的通信需求。 另一种选择是利用现有的Web服务器来实现信令功能。常见的选择包括Apache、Nginx和NodeJS等。这些服务器在处理HTTP/HTTPS、WS/WSS等基于TCP的传输协议方面有天然的优势。对于实时通信的信令服务器,负载一般不会很高,一台服务器就可以满足需求。使用Nginx和NodeJS来实现信令服务器相对容易,并且具有较高的稳定性。 在WebRTC中,STUN服务器和TURN服务器也是必不可少的组件。STUN服务器用于获取对等端的公网IP地址和端口信息,而TURN服务器则用于中继媒体流,以便在对等端之间进行通信。在创建RTCPeerConnection对象时,需要提供STUN/TURN服务器的相关信息。 总而言之,WebRTC信令服务器是实现WebRTC通信的关键组件,它起着连接对等端并协调通信的作用。选择合适的信令服务器取决于具体的需求和技术要求,可以使用专门设计的信令服务器,如Janus、Kurento和Jitsi等,也可以利用现有的Web服务器来实现信令功能,如Apache、Nginx和NodeJS等。同时,STUN服务器和TURN服务器也是不可或缺的组件,用于获取对等端的网络信息和中继媒体流。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值