WebRTC教程—概述

作者:deepstreamHub(原文链接

翻译:刘通

 

想要直接用浏览器打电话给另外一个浏览器?WebRTC正是你所需要的,并且可以让你完成以前做不到的很多事情。比如说浏览器内的音视频通话,文件传输,屏幕共享,或者服务器低依赖聊天。WebRTC有着无尽的可能性,并且孕育出了全新的使用案例,比如p2p-cdns greta.io或者peer5,以及像TokBox和agora.io这样的公司。

webrtc-logo

但是问题也是存在的:首先并且最关键的—WebRTC很困难!浏览器API在非常低层运行,留下了各种各样的连接建立,并且需要开发者去维护。一旦你的第一个视频聊天工作了之后,你会意识到另外一件事情:WebRTC真的是太难了!想要使用WebRTC做一个像是Google Hangouts的软件,你需要众多服务器端的设备来处理、聚集、以及传递数据、消息状态和连接性信息,并且需要为上百个边缘用例持续提供流畅的服务。

但是这不应该吓退你。根据你的需要,WebRTC可能并不是最快的解决方案,但却是唯一的选择。并且可能通过维持高数据流量为你节省下大批的预算。

这篇教程适用于什么地方?

这一系列的教程会带你过一遍包括建立WebRTC数据,两端间及整个聊天室内的用户之间的音视频通道,发送文件,处理视频,以及分享屏幕在内的内容。这些教程既不是针对非常低层(我们会使用WebRTC客户端库,而不是使用浏览器API),也不是针对特别高层(我们不会使用WebRTC PaaS API,比如Twilio)来写的。

我们的目标是在你读过这些教程之后你就能获得稳固的,亲身动手实践的知识,了解需要什么来搭建一个WebRTC应用,以及足够多的额外知识知道下一步该怎么做。

什么是WebRTC

WebRTC(网页实时通信技术)是一系列为了建立端到端文本或者随机数据的规范,标准,API和概念的统称。这些对等端通常是由两个浏览器组成,但是WebRTC也可以被用于在客户端和服务器之间建立通信连接,或者在任何其他可以实施WebRTC标准的设备之间进行通信建立。

开始前我们需要什么?

需要两个东西:一个最近版本的浏览器,以及drumroll—一个服务器。

我们为什么需要一个服务器?

WebRTC不是端到端连接吗?是的,但是这些对等端需要能够找到对方。问题是你的浏览器只对自己的地址有一个认识。想象一下你问你的朋友她家地址是什么,她回答你“我住在一个红房子里”,但是你还是要知道她住在哪个城市哪个街道等等,而且即便你知道了这些信息,你还需要挨个门的敲来找到她到底住在哪。

这个过程叫做“交互式连通建立”,简称ICE,它需要一个外部服务器在对等端之间传递SDP信号,以及可能还需要额外的STUN或者TURN服务器来客服NAT。想要了解更多内容,我强烈推荐Louis Stowasser写的WebRTC及首字母缩写词集合这篇文章,以及WebRTC Glossary

在这篇教程中我们会使用deepstreamHub作为信令平台,以及一些公共STUN和TURN服务器

在下一篇文章中,我们将要开始正式的教程内容了:在两个浏览器之间建立WebRTC连接。

填写常用邮箱,接收社区更新

WebRTC 中文社区由

运营