如果你是一位工程师,想必听过 WebRTC,就算没有开发过;如果你是一位互联网用户,大概率使用过 WebRTC,虽然可能没有意识到。在这个视频为王的时代,我们漫谈一下这个技术的来龙去脉以及一些有趣的应用。
WebRTC 关卿底事?
文言「底」也表示疑问,是「何」、「什么」的意思。如南唐中主李璟在调侃冯延巳时所写「风乍起,吹皱一池春水,干卿底事?」
如果说 20 世纪人类的书写工具是笔、通讯方式是邮局寄信,那么 21 世纪初人类的书写工具就变成键盘、通讯方式就是电子邮件/短信/即时通信聊天,而从现在开始的可见未来,手机摄像头/VR 设备就是你的书写记录这个世界的工具、实时网络通讯就是你的通讯方式。
视频成了娱乐、学习、商务会议、社交、电商的载体,人们逐渐不再有耐心阅读文字性的信息,现在连购买一件自安装的家具,它都附带二维码,用户只要一扫即打开安装指南的视频,再也不用反复研究纸质说明书里那往往画的非常蹩脚的安装图。
视频不仅是信息的展现方式,它从一部部的 mov、jpeg4、wmv(你硬盘上熟悉而又陌生的文件对不对?)变成一个个的播放器,再变成一个个的 App,然后又从这种单向的“录制 上传 下载 找播放器打开 播放”,变成了“现场录制 边录边播 实时收看”,再变成视频与即时通讯工具、会议工具融合的双向“录制与播放”。
远程视频会议已经成为如今办公的标配
传说中的“实况直播”终于发展到一个“平民化”的阶段。WebRTC,全称 Web Real-Time Communication,就是这么一种基础技术,它促进你用新的“笔”(智能视频设备,例如你的手机)以影像而非文字方式去记录与沟通。
它的奥妙在两部分,自然就是:Web + RTC!这不是显而易见的废话吗?还真不是… 但我们先聊一下 RTC,实时网络通讯。
与 RTC 相比,WebRTC 仅仅是针对网页实时通信所建立的标准,其中也只提供了基础的前端功能进行实现。我们并不能简单地将 WebRTC
与 RTC 划等号。
“感觉上很快”就是实时?
WebRTC 强调“实时通讯网络”。网络早已无处不在了,但是否“实时”呢?大部分情况下不是。
首先,当前互联网上最重要最基本的 HTTP 协议并不是为“实时”应用设计的,当你访问一个网站的时候,你发起请求,等候网站的服务器把内容应答送回到你的 PC 或者手机设备,虽然这个应答可以非常快,但本质上是“请求-等候-应答”,这个“等候”,往往是一个不易控制的时间变量。
- 电子邮件是不是“实时”的呢?显然也不是,虽然相比传统的邮递快了十万八千倍,但是它本质上是“存储-转发”(Store-and-Forward)的机制,是由互联网上很多的邮件服务器以接力的方式,在某个最优网络路径上把电邮从某甲的设备送到某乙的设备,任何中间环节都可能延迟。
- 聊天工具是不是实时?它相比电子邮件而言,有更加“在线”的会话感 – 一个群里聊天信息来来回回、这边发那边看,好像很“实时”,但它的技术本质依然是“存储-转发”,消息接收方不在线没关系,只要“上线”(打开 App)就能收到,也不需要马上回复。
事实上,对快慢的感觉不能定义实