第9篇WebRTC-IOS之服务器及信令及信令交换以及会话描述协议
来源:互联网 发布:电脑有网线连不到网络 编辑:程序博客网 时间:2024/05/22 00:05
关键词: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日星期二
- 第9篇WebRTC-IOS之服务器及信令及信令交换以及会话描述协议
- 第10篇 WebRTC-IOS之信令与RTCPeerConnection建立及SDP描述符 周三
- webrtc-信令服务器搭建
- 搭建 webrtc 信令服务器
- webRTC信令机制
- Webrtc之apprtc与信令服务器构建
- WebRTC实时通信系列教程7 使用Socket.IO搭建信令服务器交换信息
- webrtc进阶-信令篇-之四: 如何为WebRTC项目选择信令协议
- webrtc信令交互流程
- 第11篇 防火墙穿越及信令及php表单必需字段
- webrtc客户端与TURN和信令服务器通讯流程图
- webrtc客户端与TURN和信令服务器通讯流程图
- 信令 分组交换网
- webrtc进阶-信令篇-之三:信令、stun、turn、ice
- webrtc进阶-信令篇-之三:信令、stun、turn、ice
- webrtc进阶-信令篇-之三:信令、stun、turn、ice
- A接口信令协议
- 信令
- 第13周 项目-验证算法(Dijkstra算法的验证)
- 【重要】印象笔记evernote无法连接服务器解决办法
- Android studio MVPHepler插件的安卓及使用
- QQ视频直播架构及原理
- 汇编语言 王爽(第三版)课程设计一
- 第9篇WebRTC-IOS之服务器及信令及信令交换以及会话描述协议
- HDU 2612 Find a way BFS
- 第13周项目4 Floyd算法验证
- 项目 4 - 利用遍历思想求解图问题
- iOS 开发 Object-C和JavaScript交互详解之OC与JS交互在JavaScriptCore中使用
- SEO实战干货:独家揭秘内页快速收录排名
- 第十三周 拓扑排序
- Mongo For Java常用操作
- php使用gzip压缩传输js和css文件的方法