文档章节

[翻译] 通过WebRTC技术实现点对点通信

yunfound
 yunfound
发布于 2014/03/20 17:17
字数 718
阅读 1871
收藏 8

通过WebRTC技术实现点对点通信

WebRTC是一个实验性技术。
因为该技术的规格还没有稳定下来,在各浏览器中必须通过检查属性表的前缀来正确使用,例如:在Chrome中使用 webkitRTCPeerConnection,在Firefox中使用mozRTCPeerConnection,前缀不一样。另外请注意,实验性技术的语法和行为有可能在浏览器未来的版本中改变。


概述

WebRTC API被设计为允许JS应用程序通过浏览器在用户之间创建实时的音频,视频和/或数据信道连接,或与支持WebRTC协议的服务器通信。它还利用navigator.mozGetUserMedia()函数方法来访问麦克风和摄像头数据(getUserMedia()函数已经在标准化媒体捕获小组日程上)。

标准化进程

不断变化的WebRTC规范主要来源是W3的WebRTCgetUserMedia 规范,以及在IETF的各种草案,主要是rtcweb工作组MMUSICrmcat和其他几个组。在Chrome和Firefox实现的WebRTC功能,大部分代码是基于谷歌在webrtc.org上的开源。

提示:如果在浏览器安装了FlashBlock,当前版本的FlashBlock插件可能默认会拦截HTML5的video标签组件;如果要在页面上使用WebRTC的视频功能,需要设置FlashBlock允许该video组件,或者在该页面禁用FlashBlock工具。

教程及实例

HTML5 Rocks 上有一个非常不错的介绍WebRTC基本功能的教程。在webrtc-landing 上有一个基本的测试页面的集合,用以支持发展webrtc的发展。

你可以使用Chrome在apprtc.appspot.com上做一个很简单的P2P的通信实验,体验WebRTC的点到点通信技术。

有一篇骇客文章 更形象的描述了建立RTCPeerConnection过程中发生了什么(在这里阅读所有关于WebRTC的骇客文章):
演示WebRTC过程

规范列表

<table> <tbody> <tr> <th>规范</th> <th>状态</th> <th>说明</th> </tr> <tr> <td>WebRTC API</td> <td>在定义中</td> <td>&nbsp;</td> </tr> <tr> <td>getUserMedia API</td> <td>在定义中</td> <td><a href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html" title="http://dev.w3.org/2011/webrtc/editor/getusermedia.html">http://dev.w3.org/2011/webrtc/editor/getusermedia.html</a></td> </tr> </tbody> </table>

浏览器兼容

<table> <caption>PC桌面浏览器</caption> <table class="compat-table"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>Yes<span class="inlineIndicator prefixBox prefixBoxInline" title="prefix">webkit</span></td> <td>Firefox 22</td> <td>Not&nbsp;supported</td> <td>Not&nbsp;supported</td> <td>Not&nbsp;supported</td> </tr> <tr> <td>DataChannels</td> <td>Will be in Chrome 29</td> <td>Firefox 22</td> <td>Not&nbsp;supported</td> <td>Not&nbsp;supported</td> <td>Not&nbsp;supported</td> </tr> </tbody> </table> </table>

<table> <caption>移动端浏览器</caption> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Preliminary support</td> <td>Via Chrome (behind flag)</td> <td>Activated on Nightly and Aurora</td> <td>Not&nbsp;supported</td> <td>Not&nbsp;supported</td> <td>Not&nbsp;supported</td> </tr> <tr> <td>DataChannels</td> <td>Compatibility unknown; please update this.</td> <td>Activated on Nightly and Aurora</td> <td>Not&nbsp;supported</td> <td>Not&nbsp;supported</td> <td>Not&nbsp;supported</td> </tr> </tbody> </table>


原文 Peer-to-peer communications with WebRTC

© 著作权归作者所有

共有 人打赏支持
yunfound
粉丝 30
博文 16
码字总数 2655
作品 0
上海
架构师
私信 提问
WebRTC基础实践 - 1. WebRTC简介

WebRTC 是一个开源的实时通信项目, 主要目标是对Web/原生App平台上的语音、视频、以及数据传输等实时通讯提供支持。 WebRTC 主要包括以下 JavaScript API(点击链接可查看相关demo)。 : 获取用...

铁锚
10/14
0
0
iOS下音视频通信的实现-基于WebRTC

前言: WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,简而言之它是一个支持网页浏览器进行实时语音对话或视频对话的技术。 它为我们提供了视频会议的核心技术,包括...

ljianbing
06/26
0
0
通过WebRTC实现实时视频通信(一)

通过WebRTC实现实时视频通信(一) 通过WebRTC实现实时视频通信(二) 通过WebRTC实现实时视频通信(三) WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网...

gbin1
2014/09/23
13.1K
4
使用WebRTC搭建前端视频聊天室——入门篇

<!doctype html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>GetUserMedia实例</title> </head> <body> <video id="video" autoplay></video> </body> <script type="text/......

lwaif
2015/08/10
0
0
使用WebRTC搭建前端视频聊天室——入门篇

什么是WebRTC? 众所周知,浏览器本身不支持相互之间直接建立信道进行通信,都是通过服务器进行中转。比如现在有两个客户端,甲和乙,他们俩想要通信,首先需要甲和服务器、乙和服务器之间建...

痕無影
2015/08/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【转载】缓存穿透,缓存击穿,缓存雪崩解决方案分析

前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑...

xiaomin0322
14分钟前
0
0
Maven: Non-resolvable import POM:Failure to find *** in *** was cached in the local repository.

clean or package spring cloud 项目时,IDE 打印如下报错: Non-resolvable import POM: Failure to find org.springframework.cloud:spring-cloud-dependencies:pom:Greenwich.M3 in https......

AmosWang
18分钟前
0
0
性能优化(性能优化概述)

软件系统质量特性 安全性 同时兼顾向合法用户提供服务,以及阻止非授权使用软件及资源的能力。 健壮、可靠 软件系统在一定的时间内无故障运行的能力、容错能力、恢复能力 。 可用性、易用性、...

这很耳东先生
22分钟前
0
0
ZooKeeper命令大全

创建节点 # 创建节点,-s表示顺序节点,-e表示临时节点,默认是持久节点create [-s] [-e] path data acl # 示例create /zk-book 123 查看节点 ls path [watch] # 示例ls /zk-book 获取...

爱宝贝丶
32分钟前
2
0
Elasticsearch节点角色类型node.master和node.data说明s

一般地,ElasticSearch集群中每个节点都有成为主节点的资格,也都存储数据,还可以提供查询服务。这些功能是由两个属性控制的(node.master和node.data)。默认情况下这两个属性的值都是tru...

傲娇字符
48分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部