WebRtc学习总结

WebRtc总结

什么是WebRtc

官方首页简介原文

WebRTC is a free, open project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others. This page is maintained by the Google Chrome team.

简单来说,WebRTC是一个免费的、开源的,用于实现浏览器以及移动设备实时通讯项目。它可以实现实时的高质量的流畅的音视频通话。

ps:多数应用在于web端,因为毕竟叫 web-rtc

WebRTC能实现哪些功能

  1. 实现点对点的连接,在连接基础上,可以发送文件,进行音视频通讯等。
  2. 可以进行多人的语音视频通讯,在不使用服务器的情况下,多人通讯大约为4-5人上限。

WebRTC体验

体验方式可以是webrtc官方的demo,也可以是自己动手编译源码搭建环境。

官方demo线上体验

官方地址连接AppRTC 官方地址输入一个房间号,然后邀请伙伴加入,就可以进行webrtc视频通讯了

自己动手搭建AppRTC环境

具体步骤详见后文

编译native源码体验

具体步骤详见后文

WebRTC基本原理

其主要是通过配p2p方式,建立对等连接实现通讯。其基本组成包括信令服务器,穿透打洞服务器(局域网可省略),以及相关的客户端。

带有打洞服务器的应用架构图

image

基本的通讯过程

图片来自于国外友人
image

相关服务器

信令服务器

信令服务器主要用于客户端之间相互交换信令,以及穿透打洞的相关信息。信令服务器在webrtc中并没有具体的实现规范与要求,大家可以根据实际的业务需求,以及能力用自己喜欢的语言,喜欢的方式实现信令服务器。
任何具有实时通讯消息能力的方式,都也是实现信令服务器,例如xmpp,websocket,soket.io等等。

穿透服务器

webrtc采用端到端的连接,无法通过NAT与防火墙的限制而直接连通。当不在同一局域网中时,就要用到穿透服务器。在Webrtc中为ICE服务。通常情况下可以使用STUN服务器或TURN服务器。现在项目上使用的是Coturn开源服务器,能同时提供STUN与TURN两种服务。

google apprtc搭建。

google的demo源码搭建需要翻墙,其中包括 房间服务器、信令服务器、穿透服务器、nginx服务器配置。房间服务器相当于一个具体的客户端实现。具体搭建方法,参考博客基于Ubuntu16.04(64位)搭建WebRTC服务器

官方源码下载以及编译。

native源码下载及编辑
Android源码
iOS
webrtc codelabs 相当于一个简单的web端教程

Android端

几经google与百度,找到一个靠谱的外国友人的教程Getting Started with WebRTC for Android 详细描述了如何一步一步的构建android端的webrtc应用。由于api升级,示例代码中,一小部分api已经变化了,需要注意。

关于webrtc媒体服务器。

目前有两种形式,MCU与SFU。常见的有 Kurento媒体服务器、Jitsi平台、licode等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值