WebRTC介绍

WebRTC,Web Real-Time Communication,网页实时通信。

对Web App开发者来说它的主要目的是提供一套标准JavaScript API,方便开发者使用,在Web App中加入点对点的比如视频聊天、语音或者文件分享功能。

另外,浏览器提供商也可根据这个标准实现支持WebRTC的功能。

WebRTC是由Google 2011年发起的开源项目。

WebRTC被分别提交,希望成为业界标准:

  • 浏览器端API,已经提交给W3C,试图成为HTML5标准的一部分,目前处在草案状态
  • 和服务器端/其他浏览器端的传输协议,已经提交IETF,目前也处在草案阶段

感受WebRTC

WebRTC是标准,有多个组织和个人实现了WebRTC的服务器端,以下使用的是easyRTC的示例

我测试了几种情况:

  • Mac下开2个Chrome窗口,成功
  • 1个是Mac下Chrome,走公司专线,一个是Android手机下Chrome,走联通ADSL,成功
  • 和朋友之间使用,有成功,有无法连接的,往往是对方网络环境较差

WebRTC的优缺点

WebRTC尚未成熟,有优点也有问题。

优点

如下:

  • 直接使用浏览器(前提是该浏览器支持WebRTC,IE和Safari不在此列),无需插件
  • 因为基于浏览器,所以可跨浏览器(浏览器支持WebRTC)和跨操作系统平台
  • 使用P2P技术处理数据(音频、视频和文件等)的传输,可减少服务器端的性能压力和带宽成本(这是有条件的,有些网络环境下可能无法使用P2P)
  • JavaScript API,易于编写代码
  • 可细粒度的在网页中灵活使用音视频实时通信
  • 是目前唯一的候选标准,其他类似竞争者都未提交为标准

缺点

如下:

  • 目前还不是标准,有不确定性
  • 并非所有浏览器支持,IE和Safari都不支持
  • 服务器端只提供了标准,目前有多个开源实现,需要自己部署和配置
  • 使用P2P技术,因为网络环境的复杂性,可能带来部署和使用的复杂性

WebRTC面对的市场及其竞争者

运营商和OTT:

  • 运营商,OTT正在持续侵蚀它们的利益,比如使用Skype、FaceTime通话,使用微信替代短信和语音信箱等。
  • OTT,比如微信、移动QQ、Skype、WhatsApp等,WebRTC会对它们的市场产生挤压,OTT满足的是单一的通信功能(可能附带其他功能),而后者可关注其他主要需求而附带通信功能,类比一下:当年Nokia S60相当于通信功能附带运行app的能力,而iPhone是运行app的能力附带通信功能,技术带来了主要矛盾的逆转

目前一些OTT提供了SDK供开发者使用,多以语音为主:

  • Skype,曾经开放API,不过2013年12月份已经被微软关闭(没有用过,貌似没有视频,另外可能是面向桌面的,名称为desktop api,未必有移动端支持)
  • Rebtel,基于语音的VoIP
  • Twillio,基于语音的VoIP

另外,GSMA联合运营商,搞的:Joyn,未见可用的示例。