webrtc入门简介


最近一直在研究webrtc的相关工作,在这里也直接坐下记录。

什么是WebRtc

webrtc是还未正式发布的一种视频通讯的新的解决方案,其核心在于通过浏览器来完成这一工作,只要你有浏览器你就可以使用(传统的视频还是通过浏览器嵌入flash插件,或者c++脚本来达到播放视频的效果)。
具体详情点击HERE

主要内容

  • webrtc的原理
  • webrtc在服务器端上的实现
  • webrtc在android端上的实现

webrtc的原理

webrtc在服务器端上的实现

在服务器端上的实现我们又可以分为两部分

  • webrtc在web上的实现
  • webrtc在后端的实现
webrtc在web上的实现

从上面的图片中我们可以看出来,对于web上实现最大的问题还是浏览器的支持,下面是支持webrtc的浏览器

从上面我们看到其实支持的浏览器还是比较少的,至于IE,Safari是打算做自己的WebRtc标准,当然这只 是“小道消息”。
对于页面显示我们要借助与HTML5的Video标签

<div class="video_box">
     <video id="mini" muted="true" autoplay="autoplay" width='192'height='144'></video>
     <div id="videos" >
   </div>
</div>

Webrtc在web上主要用到下面几个API:

  • PeerConnection
  • RTCSessionDescription
  • getUserMedia

这三种API在不同浏览器中是不同的赋值方式,详情可参阅官方API

webrtc在服务器中的实现

在这里我们要提供两种东西,一种是单纯的socket交互,告诉用户端接下来要怎么做。另外一点就是要提供一个stunserver。
stunsever:因为我们使用Node.js来实现,所以我们使用一个modules----stunsrv

var stunServer = require('stunsrv').createServer();
stunServer.setAddress0("127.0.0.1");
stunServer.setAddress1('0.0.0.0'); //外网IP
stunServer.setPort0(9001);
stunServer.setPort1(9001);
stunServer.listen();

它的功能就是用于穿透路由器,比如在不同网段中聊天,我们首先要确定其在哪个公网ip,然后需要知道是在这个公网ip路由下的哪个本地ip,然后才能进行连接。

Socket:

socket主要由下面几个功能:

  • 实现用户跟服务器之间的持续连接
  • 告诉用户除了你还有谁
  • 告诉用户与你要建立连接的用户所处的状态

通过以上几个功能便能实现用户p2p交流的基本功能了。

webrtc在android端上的实现

在很早之前,google已经在Android的源码中实现了webrtc的功能,但是并没有将此功能实现在大众面前而已。google已经实现了android和ios上的webrtc实现,具体可见HERE(在国内想要完成这个任务还是比较艰巨的)

最终我们要使用的是一个名字叫做libjingle_peerconnection的库,在这里面封装了WebRtc的API,详情可点击这里 而实际上API的使用方式都是相同的,大家可以参照下巨人的例子来进行学习。

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,519评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,842评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,544评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,742评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,646评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,027评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,169评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,324评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,268评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,299评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,996评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,591评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,911评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,288评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,871评论 2 341

推荐阅读更多精彩内容

  • 翻译☞http://www.html5rocks.com/en/tutorials/webrtc/infrastr...
    bktmkd阅读 6,251评论 1 28
  • 前言: WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,简而言...
    涂耀辉阅读 50,526评论 134 430
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,263评论 25 707
  • 没有人会陪你走一辈子,所以你要乐在其中; 没有人会帮你一辈子,所以你要建立强大的自我。
    浅_夜阅读 127评论 0 1
  • 曾经,也曾在交织的噩梦里挣扎,曾在失去里无助… 放下的人,放下的心,不是因为不爱了,而是爱的太扎心了。 可能嫁的不...
    阿史那恪阅读 188评论 0 0