APP下载

通过WebRTC在浏览器中聊天

2015-06-17

CHIP新电脑 2015年6期
关键词:IP地址引擎浏览器

通过“网页实时通信”(Web Real-Time Communication,简称WebRTC)实现实时语音对话或视频对话,我们只需点击一个链接即可开始谈话,除了浏览器,无需其他额外的软件,也不需要登录服务。

目前Skype是最受欢迎的实时语音对话和视频对话服务,但是WebRTC的出现可能改变这一切。Firefox目前已经集成了WebRTC客户端,实现实时语音对话和视频对话,就好像打开一个网页一样简单。相比之下,使用Skype等其他的实时语音对话或视频对话解决方案,我们需要安装客户端并建立一个用户账户。

通过WebRTC实现实时语音对话和视频对话不仅容易,同时WebBTC不需要登录服务器,不需要使用任何服务账户,而且该技术允许两个浏览器建立一个连接直接进行通信,无论是音频还是视频数据全部不需要经过服务器,虽然发起呼叫的过程用户需要与服务器联系,但是通信同样是在加密的状态下传输。因而,即使最挑剔的隐私和数据保护主义者也难以挑出什么毛病。

Google早在2011年已经在自己的浏览器上开始支持WebRTC,同时公布了实现WebRTC的源代码,很快Chrome和Firefox都嵌入了WebRTC引擎。移动版本方面,目前占主导地位的是Android 5.0安装的浏览器引擎的WebView 3.6,在浏览器中可以通过相应的JavaScript接口调用该引擎,即可实现WebRTC应用:通过GetUserMedia,软件可以激活捕获视频和音频信号源的设备,例如摄像头和麦克风,通过RTCPeerConnection即可轻松呼叫并建立通信。

在各种浏览器纷纷支持WebRTC的同时,W3C的一个工作组也正在进行WebRTC的标准化工作,预计此项工作将在2015年年中完成。

WebRTC节约资源

实现WebRTC服务并不复杂,因为服务器需要做的只是让对话的双方彼此连接。建立呼叫的过程非常简单:浏览器首先传递一个信号到WebRTC服务器,表示它希望开始一次对话。它将在通信被加密的情况下接收一个来自服务器的HTTPS链接,然后用户可以将该链接提供给要对话的朋友。紧接着浏览器将询问用户是否允许访问摄像头和麦克风,如果它成功获得用户的授权,那么就会激活硬件并开始捕捉输入的数据。

与此同时,浏览器确定用户当前设备的IP地址是否可以通过互联网访问。因为有些电脑并没有直接连接到互联网上,而是通过路由器连接到互联网的,所以需要通过重定向数据流(NAT)技术进行连接。对于类似的设备,为了找出这种重定向之前的IP地址,浏览器需要联系“NAT会话传输应用程序”(Session Traversal Utilities for NAT,简称STUN)获得真正可以通过互联网连接上的IP地址。接下来,浏览器将把音频和视频编解码器的端口号以及图像分辨率等配置资料报告给WebRTC服务器。

加密的实时通信

如果进行对话的朋友点击接收到的链接尝试启动对话,那么浏览器将通过WebRTC服务器获得发起对话的用户电脑的IP地址以及WebRTC服务相关的配置数据。浏览器将自动根据这些信息进行调整,浏览器中的3个引擎将开始启动,两个引擎负责优化和压缩音频和视频数据,另一个引擎负责传输数据,它将确保对话数据在顺畅并且质量良好的情况下发送,并通过安全实时传输协议(Secure Real-time Transport Protocol,简称SRTP)发送加密的实时流。然而,如果网络配置阻止STUN服务器从报告的IP地址直接进行连接,那么对话双方无法建立直接的连接,浏览器将尝试寻找另一种方式实现WebRTC通信。在这种情况下,将按照WebRTC标准的规定通过一个“NAT会话中继”(Traversal Using Relay NAT,简称TURN)服务进行中转。如果想确定自己的电脑和网络配置是否能够通过互联网进行直接连接,那么我们可以通过类似netscan.co之类的在线监测服务进行检测。

Goolge和Mozilla正努力推动WebRTC,Chrome浏览器可以通过WebRTC与多位朋友对话,而Firefox则与西班牙电信的子公司合作推广WebRTC。目前,只有苹果仍然没有加入WebRTC阵营,但是Safari浏览器有支持WebRTC的迹象。此外,iOS已经有一系列的WebRTC应用程序,同时也有用于Safari的WebRTC浏览器插件。

无论是应用程序还是Web服务,像talky.io和apeear.in这样的WebRTC服务基本上都是免费的,与微软明显不是同路人。不过,作为Skype服务的所有者,微软公司并不准备轻易认输。相反,微软为Internet Explorer浏览器开发了一个名为ORTC(对象实时通信)的技术,该技术与WebRTC类似,不同的是它采用了不同的编解码器,与服务器通信的协议不同,最终有可能可以成为一种扩展了的WebRTC标准。一如往常,苹果成为唯一无法支持WebRTC的浏览器。

猜你喜欢

IP地址引擎浏览器
铁路远动系统几种组网方式IP地址的申请和设置
反浏览器指纹追踪
IP地址切换器(IPCFG)
蓝谷: “涉蓝”新引擎
基于SNMP的IP地址管理系统开发与应用
公安网络中IP地址智能管理的研究与思考
环球浏览器
再见,那些年我们嘲笑过的IE浏览器
无形的引擎
基于Cocos2d引擎的PuzzleGame开发