WebRTC教程(二)
导读:这篇文章主要介绍了WebRTC的一些主要API和内部自带的建立连接的功能及特性。WebRTCAPIgetUserMedia
首先介绍了getUserMedia,这是一个提供到多媒体流的API。
比如希望存储音视频数据就可以使用MediaStreamRecorderAPI。
getUserMedia()是一个无论对于开发者还是用户都十分方便的API:开发者可以仅使用一个函数来获取音视频源数据,而用户也不需要安装其他软件或库。
这个API只有一个方法,就是getUserMedia(),从属于window。navigator。object。getUserMedia结构
getUserMedia方法会提示用户是否有使用一个多媒体的权限,其输入参数是音频或视频的参数,这些参数都是bool类型的,你可以根据你的需求选择这些参数,如是否请求一个音视频流。此外还可以添加额外的限定,如分辨率,视频的宽高度等。错误异常处理‘’
接着讲者展示了一些getUserMedia可能返回的错误及异常处理:
RTCPeerConnection
RTCPeerConnection代表了两台计算机之间的端到端连接,它提供了连接到一个远程对端的方式,控制和断开连接的方法。这个API是WebRTC连接的核心部分,负责了整个端到端连接的生命周期。
【更多音视频学习资料,链接免费领取,先码住不迷路】RTCPeerConnection结构
在WebRTC中可以使用RTCPeerConnection()构造函数,来获取一个端到端间最新建立的RTC连接。这个API接收一个RTCConfiguration类为输入参数,并定义了这个端到端连接应如何建立,以及其应使用的ICE服务器。RTCPeerConnection功能它会跟踪本地和远程连接流;它会管理NAT穿透的ICE工作流;它会根据需求自动触发流的重新协商;它会在流之间发送自动的心跳包;它会为其他API提供连接请求,接收答复等。
RTCPeerConnection概览
接着讲者展示了RTCPeerConnection的具体模式:
图中可以看到RTCPeerConnection掌管了端到端连接的本地和远程流,以及负责控制ICEAgents,来跟STUN和TURN服务器工作。SessionDescriptionProtocal(SDP)
要建立端到端连接,就必须知道对方的公网IP地址。假设有以下情况:两端都在同一网络下,可以直接连接;两端各在一个子网下,且可能还有防火墙,对于WebRTC无法直接建立连接;一端可能下线、忙碌、或者无意与其他用户初始化连接。
WebRTC自带的ICE协议可以解决必需的路由和连接检查,剩下的问题可以由信令服务器解决。为了使用信令服务器,用户首先需要在同一个信令服务器下,并通过信令服务器来交换其他用户的连接信息。信令服务器通过SDP服务来获取用户信息。
SDP是一种单纯的基于文本的协议,传递一种会话文件:连接的各种属性的列表,如媒体类型、网络参数、编解码器、带宽信息等。WebRTC提供一个createOffer()方法来为会话产生SDP描述,但是WebRTC内部实际上不会直接处理SDP,它的JavaScriptSessionEstablishment会处理所有SDP过程的内部工作。SDP请求产生结束后,会通过信令服务器被发送到远程对端。产生的offer称之为会话的localdescription,对于接收到的SDP答复,称之为会话的remotedescription。SDP方法
讲者展示了之前提到的四个最主要的处理SDP的函数:
其中可以看到创建SDP请求和答复的createOffer()以及createAnswer(),以及设置本地SDP和远程SDP的setLocalDescription()和setRemoteDescription()。SDP流程
SDP流程图:
图中信令服务器用于转发端到端之间的SDP请求以及答复。InteractiveConnectivityEstablishment(ICE)端到端连接
由于多层的防火墙和NAT设备,用户之间的端到端连接有可能十分困难。假设两个用户各处在一个独立的子网下,WebRTC框架就可以解决这种情况下的连接问题。RTCPeerConnection类包含一个ICEAgent,ICEAgent可以获取到本地IP和端口,并可以完成两端之间的连接性检查,此外还可以保持连接存活。ICE工作模式
在确认了会话描述后,ICE就会开始自动寻找所有可用IP地址和端口。首先他会向操作系统请求其公网IP地址,假如这一步失败了,ICEAgent就会向它的STUN或者TURN服务器请求其公网IP。如果一个新的节点(ipport),ICE就会自动通过RTCPeerConnection对其注册。整个ICE流程都是在后台自动完成的。在这个过程完成后,就能够找到端到端间路由路径。TrickleICE
TrickleICE是对于ICE协议的一个扩展,允许在端之间进行增性的寻找以及连接检查。RTC不需要再等待ICE寻找过程结束,就可以通过信令服务器向另一端发送增性升级,这样的话另一端就不需要在连接的过程中等待。这样的话两端就可以在没有ICE的情况下交换SDP请求。尽管TrickleICE会在信令服务器上产生更多的网络流量,但是可以帮助在端到端连接初始化时减小很多时间。简而言之,就是WebRTC先发送SDP请求,然后一旦有成员被发现就开始trckleICE。
在WebRTC连接中,没有任何保证连接建立后就能一直保持此状态,这个连接很有可能周期性的断开,这时ICEAgent就会尝试找到最优路径来重新建立这个连接。WebRTCLeak
WebRTC提供了非常方便好用的在浏览器的实时视频通信系统,但是仍需要考虑线上隐私问题。
WebRTCLeak指的是:你的公网ip地址被你浏览器的WebRTC功能所泄露出去。当你使用虚拟专用网(VirtualPrivateNetwork:VPN)时,你的IP地址还是安全的,但是当你使用了WebRTC后,WebRTC就能通过STUNTURN服务器获得到你的公网IP地址。如何检查WebRTCLeak
首先使用你的VPN并连接到一个服务器,再检查你的公网IP地址是什么。然后在google中搜索你的ip地址,如果搜索到的结果和你本地显示的一样,说明WebRTC把你的公网IP地址泄露了。如何避免WebRTCLeak
目前的唯一方法就是把浏览器的WebRTC功能关闭。
如果你使用的是火狐浏览器,你就可以在url中输入about:config,并将media。peerconnection。enabled一值设置为false。
如果你使用的是Chrome浏览器,则需要安装uBlockOriginChrome扩展来关闭WebRTC功能。
作者:煤矿工厂
原文链接:https:mp。weixin。qq。coms?src11timestamp1672206903ver4253signatureOLVwxtUSfSp5lycWOXQTs5IoKTM1nNHuHoNsEGu2TlVSZ5EU0kn0or8wFnIW7J6Wone8tGdJoNVqiYOBClt4aar1sO63ekOV9mniBXfGLRZo6Y2vtiOhOg3Lj6Rienew1
棋魂随感真人版剧版棋魂也是成功的翻拍剧,不管是围棋爱好者,还是剧迷都很喜欢,胡先煦的少年特性一览无遗,剧版对人物形象更贴近一个真正的孩子,会调皮捣蛋,会害怕,会任性,还有点小善良,死鸭子嘴
江西共青城落日余晖伴白鹭尽显生态美央广网共青城2月1日消息(记者邓玉玲)冬季的傍晚,夕阳的余辉照亮了整个水面。近日,在江西共青城市苏家垱乡寺下湖水域内,如火一般的晚霞将这一泓碧水渲染成一幅暖色调的油画。在这碧水之中
年度书单丨九州的2022,念记每一个平凡的日落日升岁末年初是告别,也是迎接,又是一样的冬日暖阳。去年你曾许下来年的期许,立过无数个FLAG,现在回头看看,都如愿了吗?回顾总结过往,是人类擅长的,对于既往的种种,悲伤也好,喜乐也罢,
绝美!上百只花头鹦鹉与落日同框有生态摄影师日前在云南省德宏州瑞丽市拍摄到上百只国家二级重点保护动物花头鹦鹉的活动画面。特别是几张花头鹦鹉与落日同框的画面,像是花头鹦鹉把夕阳驮回巢去一样,带着一种温柔的美。花头鹦
洮河岸边的牡丹之歌以洮河流珠而著称的洮河,是黄河上游最大的支流。须是牡丹花盛发。古城甘肃临洮的花季,一朵朵一片片一树树争奇斗艳沁人心脾的紫斑牡丹,在洮河两岸汇成了一望无际的花海碧浪。各类支农项目和生
变阳随感在万恶的旧社会,广大的劳动人民受到地主,资本家的残酷剥削和压迫。他们过着暗无天日的日子。用形象的话来说,就是他们给剥削者当牛做马,过着猪狗不如的生活,,吃的是猪狗食,穿的是百鸟衣。
交易截止日湖人最新交易动态浓眉可能已被交易距离交易截止日还剩一天多的时间,湖人队流言四起,球队人心惶惶。据美媒爆料,在詹姆斯破纪录以后,浓眉不满球队现状,申请交易!但截止目前,NBA多支球队报价浓眉均遭到湖人拒绝,赛季至今
2022年新疆青少年篮球锦标赛复赛新疆网讯(全媒体记者王畅彤)2月6日,奔跑吧少年2022年新疆青少年篮球锦标赛复赛,来自全疆的33支球队将分别在高中男女组和初中男女组中展开角逐,冠军争夺赛将在2月9日进行。当天1
低胸装画艳妆,100亿资产黄磊这样培养女儿黄多多,社会气息重头条创作挑战赛2月5号,黄磊女儿黄多多在社交平台上发布了与好友的比心照。黄多多和同学照片照片中刚满17岁的黄多多与同学晒的比心照,黄多多脸蛋看起来很漂亮,可是画的艳妆也很明显,还在
露脐装,周洁琼演绎出别样魅力每个秋日的午后总是让人感到昏昏欲睡,不如将自己精心打扮一番,去探望一下老友,或是去看看久违的伙伴。二十四岁的周洁琼,正是青春洋溢活力四射的年纪,一个女孩,就如同含苞待放的花朵般娇柔
唯美又浪漫!答应我,抓住冬天的尾巴你看,同江就像是被魔法师施了冰雪魔法,变成了冰雪奇缘的童话世界。眼前,是云层间透下的冬日阳光耳边,是积雪从树梢落下的簌簌声景色随步伐一点点推进,像是一场放映在冬日冰雪大片。王秀峰摄