WebRTC介绍-1

来源:互联网 发布:棋牌游戏源码可控制 编辑:程序博客网 时间:2024/04/28 05:44

WebRTC是网页实时通信(Web Real-Time Communication)的缩写,WebRTC扩展了网页浏览器模型。通过它就可以和其他浏览器进行P2P通信,进行实时语音对话或视频对话。

万维网联盟(W3C)和互联网工程工作小组(IETF)加入并制定JavaScript API,通过标准HTML5标签和底层通信协议的制定,来提供浏览器之间稳定的可靠的通信。

WebRTC(Web Real-Time Communication)项目的最终目的主要是让Web开发者能够基于浏览器(Chrome\FireFox\...)轻易快捷开发出丰富的实时多媒体应用,而无需下载安装任何插件,Web开发者也无需关注多媒体的数字信号处理过程,只需编写简单的Javascript程序即可实现,W3C等组织正在制定Javascript 标准API,目前是WebRTC 1.0版本,Draft状态;另外WebRTC还希望能够建立一个多互联网浏览器间健壮的实时通信的平台,形成开发者与浏览器厂商良好的生态环境。同时,Google也希望和致力于让WebRTC的技术成为HTML5标准之一,可见Google布局之深远。

WEB架构

经典的web架构基于C/S模型,即浏览器向服务器发送http(Hypertext Transfer Protocol)请求,服务器返回请求结果。服务器可以在html中嵌入JavaScript代码发回给浏览器,JavaScript可以在浏览器中执行。

WebRTC架构

WebRTC通过在浏览器间引入P2P通信模型扩展了C/S模型。最普遍的WebRTC模型是会话发起协议(Session Initiation Protocol)如下图:

上图是两个不同的web应用,它实现了不同web应用之间的p2p通信。Signalling-信令:用来发送建立连接或终止连接的消息。

最常见的WebRTC模型是两个浏览器运行相同的web应用,只需要一个web服务器,如下图。

浏览器端的WebRTC

一个WebRTC网页应用在浏览器端通过执行标准WebRTC API写成的程序 ,通常为html和JavaScript混合代码。WebRTC API提供了很多函数集,像连接管理(P2P),加密解密,媒体控制,防火墙,NAT穿透 等等。

简单示例

假设Alice和Bob是两个普通用户,他们都打开浏览器连接web服务器并下载了web页面。其中html中的一段JavaScript代码通过http或WebSocket和服务器保持连接。

当Alice点击页面上的一个按钮来开始拨通Bob时,执行流程图如下:

0 0