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

jopen 10年前

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

通过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过程

规范列表

规范 状态 说明
WebRTC API 在定义中  
getUserMedia API 在定义中 http://dev.w3.org/2011/webrtc/editor/getusermedia.html

浏览器兼容

PC桌面浏览器
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support Yeswebkit Firefox 22 Not supported Not supported Not supported
DataChannels Will be in Chrome 29 Firefox 22 Not supported Not supported Not supported
移动端浏览器
Feature Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Preliminary support Via Chrome (behind flag) Activated on Nightly and Aurora Not supported Not supported Not supported
DataChannels Compatibility unknown; please update this. Activated on Nightly and Aurora Not supported Not supported Not supported

原文 Peer-to-peer communications with WebRTC