使用 LeanCloud WebRTC 插件打造视频聊天应用

剪贴板_2016-08-23_11-07

随着网络环境的整体改善,越来越多的应用开始加入视频聊天功能——社交通讯、视频会议、在线教育、在线医疗、在线客服,涉及领域广阔。视频聊天听起来爽,做起来难,要耗掉多少个项目人天都不好说。所以为了降低接入视频聊天功能的成本,我们实验性地发布了一款与 LeanCloud 实时通讯 JavaScript SDK 搭配使用的 WebRTC 插件,为想在 Web 平台上实现一对一视频聊天的开发者们助一把力。

WebRTC Demo

首先来介绍使用了 WebRTC 插件开发的 WebRTC Demo。得益于开放的 WebRTC 标准,LeanVideoChat 不需要安装浏览器插件,也无需注册。

Demo 地址:https://leancloud.github.io/js-realtime-sdk/demo/webrtc/

Demo 的源码公开放在 https://github.com/leancloud/js-realtime-sdk/tree/master/demo/webrtc

WebRTC 插件

WebRTC 插件使用了 WebRTC 技术来实现视频聊天。WebRTC 的全称为 Web Real-Time Communications,是一组标准化的 API,用于实现端到端的实时数据交换。与业界之前的方案相比,WebRTC 具有以下优势:

  • WebRTC 是 W3C 标准,并得到了主流浏览器厂商的广泛支持。这意味着高质量的实现,无需插件的使用体验(目前 Chrome、FireFox、Edge 浏览器均已支持 WebRTC,Safari 正在开发中,同时社区也提供了 iOS 与 Android 平台上的原生实现)。
  • WebRTC 在传输层使用了 UDP。相较于其他协议,UDP 带来了更小的延迟。
  • WebRTC 的基础通话是点对点的,无需消耗大量的服务器资源,特别适合进行一对一的视频聊天。

虽然 WebRTC 技术提供了 Web 端视频聊天的能力,但其使用方法还不够简单。开发者仍需要了解 TURN/STUN、Signaling 等概念,自己动手去实现标准中定义的 Signaling 的交换机制。因此,我们将 WebRTC 技术封装为 LeanCloud 实时通讯 SDK 的一个插件「WebRTC Plugin」,方便开发者去集成,分分钟搞定自己的视频通话功能。

WebRTC 插件的主要特性有:

  • 屏蔽了 WebRTC 内部的技术细节,提供了 ClientCall 两个抽象,将视频通话流程类比为日常拨打电话的流程。
  • 可与 LeanCloud 实时通讯服务无缝集成,方便地为已有应用增加音频和视频功能。
  • 基于 LeanCloud 实时通讯服务,意味着在与账户系统解耦合的同时可以通过签名机制方便地进行登录与呼叫的权限控制。
  • 内置了基础 STUN 配置,同时支持自定义 STUN/TURN 服务器配置来提升通话接通率。

文档

欢迎大家来试用,并通过 Github 向我们反馈。

评论

Loading comments ...