写点什么

WebRTC - 通讯大众化带来新的应用体验

  • 2015-06-05
  • 本文字数:3428 字

    阅读完需:约 11 分钟

开放互联网和现代计算机的形成例证了科技开放驱动创新成长的能力。HTTP 协议大概是有史以来最伟大的发明之一,计算机可以通过 HTTP 协议从服务器请求和接收数据。不幸的是,这些创造者们当时没有想到创造异步数据流和实时通讯,因为这些功能当时被电信供应商所掌控,他们基本上已经掌控了声音、视频和讯息的分发业务,不过现在,新的 web 标准将会开始打破这一传统商业模式。

随着 WebRTC API 标准的形成,电信企业通信的局面正在发生变化。这个标准以及它快速成长的生态系统使得开发者无须具备任何复杂的通讯技术和协议的经验就可以轻松地在他们的应用中集成实时通信模块。

能如此轻松地开发将会孕育出大量新的革命性应用,而这一切将会改变我们通信、交换信息以及相互交流的方式。

什么是 WebRTC

WebRTC 是一个开源项目,可以在浏览器中不借助任何插件进行实时通信。由 Google、Opera 和 Mozilla 主导的这一项目允许开发者在浏览器中仅使用 JavaScript API 和 HTML5 就可以将声音、讯息和视频融为一体。

主要的 WebRTC 组件包括:

  • getUserMedia - 允许一个 web 浏览器连接设备的摄像机和麦克风
  • peerConnection - 建立音频 / 视频呼叫
  • dataChannels - 允许浏览器点对点共享数据

开发者能够借助简单的 web 技术将实时通信集成到他们的应用中,使会话场景更富有弹性。在移动 app 或 web 浏览器具备发起和接受实时通信的能力可以为用户创造一个更好的交流环境,提高信息交换的效率。WebRTC 支持一个更加动态的生态系统,在这个系统中声音和视频通信与现有协议解耦,带来新的体验。这项技术第一次出现是在网站或 app 中的点击呼叫按钮,如若不详可以调研 Amazon 的紧急呼叫按钮。

尽管 WebRTC 提供了一些标准以促进创新,不过尚有一些问题仍需解决。其中两个大问题是缺少标准化信令和浏览器的普遍支持。WebRTC 联盟曾故意遗漏信令标准来避免冲突,此举可使各方尽快就标准达成共识。因此厂商目前使用各不相同的协议,包括 SIP、WebSockets 以及 HTTP 协议。竞争 API 和译码机标准同样阻碍了 WebRTC 跨浏览器被广泛支持。

工具和服务供应商

随着标准的发展,许多厂商已经进入这个市场来填补生态系统的缺口,并帮助移动和 web 开发者将通信模块集成到他们的项目中。这些厂商为支持移动端实现提供了通过 RESTful API 集成通信服务的功能,并且提供了 SDK。除了提供连接服务,这些厂商同样也能够在云端为开发者提供便于访问的基于通讯的服务。下面这个图表展示出调查受访者在他们的 app 中使用每一个服务的比例。

电话功能调查问卷已经集成到他们的 app 中

来源:Smith’s Point Analytics

这份数据来自我们(Smith’s Point Analytics**)关于开发者在他们的应用和网站中集成通信功能的调查。点击这里参加我们2015年度的调查。下一季度敬请回来查看结果分析报告。**

无论是通讯API 供应商还是云RTC 服务都在迅速成长并吸引了一大批竞争者。尽管所有的供应商都为市场带来连接和通讯功能和相关服务,但是厂商由于种种特质被区分开来,比如相互连接性和通话质量,或者是功能弹性和实现难度。诸如Plivo、Twilio、Nexmo、Tropo 和Telestax 这样的公司竞相与运营商建立联系,与此同时,诸如Genband、Acision、Temasys、Voximplant 以及Bit6 这样的公司专注于打造更强大的SDK 和更富弹性的服务。

使用案例

随着云通信领域的新工具和新技术获得青睐,开发者并没有等待WebRTC 最终定稿,他们正在紧跟标准的脚步积极实现。现今开发者享受着易于实现的案例,正如顺手摘下低垂的果实一样简单,不过依然没出现真正的创新。

低垂的果实

客户关系管理合作是第一个利用云通信的应用。如果销售和服务代表可以在CRM 应用中便捷地拨通客户电话,生产力就可以显著提高。而WebRTC 恰巧可以轻松地将客户信息和通话组合在一起。拨入的电话可以自动匹配客户信息,显示账户的细节和相关历史。如果客户通过网站拨入电话前已经验证过身份,那么服务代表就可以跳过恼人的重新验证过程来提升客户体验。WebRTC 规范中声明的点对点共享技术标准同样也支持服务代表与客户共享他们的屏幕。所有的这一切过程无须客户离开浏览器或下载附加软件。

尽管几年前就可以共享屏幕,但WebRTC 带来的体验对于开发者和客户来说更易上手。开发者可以利用自己的web 专长创造这些体验,他们无须理解通讯技术和协议就可以发起呼叫或管理数据流,这使得开发者可以创建适合自身需求和业务的自定义体验。金融服务垂直领域正在为他们复杂的产品快马加鞭地实现云通信功能,他们与客户的关系建立在相互信任的基础上,通过更近距离的交流以及更好地理解产品和需求可以树立相互的信任,因此金融服务企业成为了这项技术的先驱拥趸。

在协作套件中,具备集成多重数据流和共享屏幕的能力也得到了良好的应用,横跨所有设备组合这些能力使得跨团队决策更有效,从而得到更好的结果。

打破传统通信的藩篱

WebRTC 能够为当下用例带来价值,那么这种符合标准且基于云的通信手段的伸缩性就可以将通信体验大幅提升到下一个级别。在独立设备上切断数据与验证的关联造就了云计算范式,使得无论何时何地使用任何一台设备都能获取个人信息。所以通信会逐渐套件化,任何形式的无缝通信无论在何时何地任何状态下都变得触手可及。实现一通电话的传统技术壁垒将不复存在。

现在,通信往往只在单一设备上启动与结束。随着连接设备的激增,各式各样的计算机都能够支持声音、视频和信息,但是每一个都有自己的优点和唯一特征。在车里对于司机来说声音是唯一安全的交流方式,用户总是可以通过移动电话可以被联系到,更视觉化的交互更适合平板。当用户在不同环境间切换时,如若连接可以无缝地从手机切换到车上再切换到平板上,这种持续性可以驱动更好的生产力,达成更多的合约。在这些设备间转移通话的能力使得用户可以更好地利用它们的唯一特征。

更好的弹性也弱化了不同模式通信之间的隔离。随着对话的发展,需求不断改变。对于 WebRTC 而言,你可以使用一个文本 URL,将一段文字交流转变为一通电话或者视频对话。拨入呼叫中心的电话也可以通过整合不同形式的通信手段提高效率。在一个支持用户使用可交互自动应答语音树进行导航的网站或 app 中,当你打电话与之交互时会显示文字菜单,大可不必再耐心听完所有选项。

未来的体验

让 WebRTC 和云通信得到主流支持的一个真实挑战是,开发者对实现通信有预先形成的概念。电话通信自被发明以来,使用体验并没有显著改变,用户需要拨打电话号码发起呼叫然后等待对方接听,大众化的通信将引领一个新的创新浪潮,那带来的电话通信体验将远超我们的想象。

可能有这样一个潜在的创新用例:现场服务技术人员不能解决他所服务片区的设备问题。通过一个集成了通信功能的 app,技术人员可以初始化一个会议呼叫更有经验的技术人员,双方通过语音或视频交流,共同处理有问题的设备。通过将增强现实嵌入场景中,指导人员就可以以问题设备为背景,实时讲解合适的解决方案。

来源:Vipaar

一旦完成通信,所有的声音、视频和增强现实流可以被存储以备未来支持其他的技术人员和产品设计师进行借鉴。这种类型的体验也可以在健康医疗公司发挥巨大价值,可以努力降低上升的成本。

这些种类的 app 将会帮助我们重新设想信息如何实时交换的问题。我们不期待马上就出现一个具有革命性体验的 app 爆炸传播,缓步增量的创新可以引领业界不断前行,去探索我们未知的世界。开放基于自身不断驱动着创新创造。

Smiths Point Analytics 2015 调查

厂商努力为市场带来工具和服务,不断降低开发者向 app**** 中集成通信功能的难度。为了帮助这些厂商洞悉开发者所需的特性和功能,我们需要您协助调查。

参加我们的开发者调查,帮助业界驱动生态系统不断向前,为下一代体验树立基石。我们将会在稍后的文章中发布结果,所以你可以更好地理解你的同行如何看待这项技术。在所有的调查问卷中我们将抽出一个 Apple iWatch

从这里进入调查

关于作者

Peter Crocker是 Smith’s Point Analytics 的创始人和首席分析师,SPA 是一个全套服务市场研究与咨询公司,专注于移动软件和云服务生态系统。他们的产品包括思想领导论文、客户咨询和财团研究报告。

查看英文原文: WebRTC - Democratization of Telecom Enabling New App Experiences


感谢邵思华对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-06-05 03:053067
用户头像

发布了 63 篇内容, 共 130.0 次阅读, 收获喜欢 38 次。

关注

评论

发布
暂无评论
发现更多内容

程序员的修行之路-培养工作兴趣

牧马人

程序员

永中云转换新升级 文档在线预览增添更多选择

DT极客

k8s上运行我们的springboot服务之——简单的架构思考

柠檬

k8s springboot

乙己说:NUMA是个啥?

再见小飞侠

jdk G1 ZGC 内存

用Serverlss部署一个基于深度学习的古诗词生成API

刘宇

自然语言处理 学习 Serverless

Linux 常用命令

Jayli

Linux

c++代码整洁之道

泰伦卢

c c++ C#

语雀性感,印象迟暮。

彭宏豪95

学习 工具 在线办公

JVM源码分析之JVM启动流程

猿灯塔

健康饮食和定期运动带给我们的一点启示

董一凡

生活质量

SaaS生态比拼,谁会是这场PK中的主角?

TE产服

python实现·十大排序算法之冒泡排序(Bubble Sort)

南风以南

Python 排序算法 冒泡排序

BPM产业数字观察:中国市场趋向成熟,蛰伏的BPM即将醒来

TE产服

汇总一下Intellij IDEA常用的牛逼插件

公众号:V5codings

云上数据库类产品的模式与发展趋势

韩超

数据库 redis 腾讯云 阿里云

深入浅出SpringMVC系列~

程序员的时光

spring springmvc

Python 如何随机打乱列表(List)排序

BigYoung

Python List random 随机

[从零学习Spring Cloud]Nacos配置中心

玏佾

Spring Cloud nacos

忙于数字化转型,你避坑了吗?

TE产服

kube-prometheus抓取jvm监控指标

天飞

Java JVM Prometheus kubernete

一文搞懂Spring依赖注入

麦洛

《3个月9门课,谈下我的极客时间学习活动的心得》

王伟鹏

科学理论的反思

美多丽可

学习

怎么用"设计思维"思考产品?

Yanel 说敏捷产品

产品 设计 产品设计 产品开发

Android | Tangram动态页面之路(六)数据分离

哈利迪

android

5天掌握以太坊 dApp 开发

陈东泽 EuryChen

比特币 区块链 智能合约 以太坊 dapp

首厚智能:嵌入 SpreadJS 表格组件,搭建实验室信息管理系统(LIMS)

葡萄城技术团队

SpreadJS 实验室管理系统 Lims

极客时间学习心得:用分类和聚焦全面夯实技术认知

Anfernee Hu

学习

k8s上运行我们的springboot服务之——热点数据

柠檬

redis

KubeSphere权威指南(一)--------使用KubeSphere创建Percona Server,并对外暴露端口

赵欣

k8s percona server

乙己说:LRU实现思路整理

再见小飞侠

缓存 LeetCode Go 语言

WebRTC - 通讯大众化带来新的应用体验_移动_Peter Crocker_InfoQ精选文章