通过WebRTC技术实现点对点通信
WebRTC是一个实验性技术。 因为这种技术的规格还没有稳定下来,在各种浏览器中必须通过检查属性表的前缀来正确使用,例如:在Chrome中使用 webkitRTCPeerConnection,在Firefox中使用mozRTCPeerConnection,前缀不一样)。另外请注意,实验技 术的语法和行为有可能在浏览器未来的版本中改变。
通过WebRTC技术实现点对点通信
WebRTC是一个实验性技术。
因为该技术的规格还没有稳定下来,在各浏览器中必须通过检查属性表的前缀来正确使用,例如:在 Chrome中使用 webkitRTCPeerConnection,在Firefox中使用mozRTCPeerConnection,前缀不一样。另外请注意,实验性技 术的语法和行为有可能在浏览器未来的版本中改变。
概述
WebRTC API被设计为允许JS应用程序通过浏览器在用户之间创建实时的音频,视频和/或数据信道连接,或与支持WebRTC协议的服务器通信。它还利用 navigator.mozGetUserMedia()函数方法来访问麦克风和摄像头数据(getUserMedia()函数已经在标准化媒体捕获小组 日程上)。
标准化进程
不断变化的WebRTC规范主要来源是W3的WebRTC 和getUserMedia 规范,以及在IETF的各种草案,主要是rtcweb工作组,MMUSIC,rmcat和其他几个组。在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 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 |