网站建设实训心得php,wordpress 执行顺序,wordpress萨隆设置,网页前端开发网站webRtc概念
以下的文档整理来自此链接
文档整理了一系列实现web通用接口的ECMAScript APIs #xff0c;这些接口是为了支持浏览器或者一些其他实现了实时交换协议的设备进行媒体信息和程序数据交换。
1、实现点对点通信的规范#xff1a; NAT穿透实现与远端节点链接比如这些接口是为了支持浏览器或者一些其他实现了实时交换协议的设备进行媒体信息和程序数据交换。
1、实现点对点通信的规范 NAT穿透实现与远端节点链接比如 ICE, STUN, and TURN 发送本地的tracks数据并接受来自远程节点的tracks数据 可以向远程节点发送任何数据
ue4像素流建立的点对点链接是基于浏览器实现的ICE代理服务
2、点对点链接
1、概述
一个单点rtc链接实例允许应用程序与另外的一个单点rtcrtc实例建立点对点的通信,这个链接实例可以是浏览器或者其他实现了相关协议的设备其中通信依赖于可控制的信息交换信令通道但是信令通道的上层实现是多样的在浏览器中比如说使用websocket或者 XMLHttpRequest。
ue4像素流使用websocket作为信令通道
2、配置
WebIDL中已经实现了RTCConfiguration接口看下面的代码
dictionary RTCConfiguration {sequenceRTCIceServer iceServers [];RTCIceTransportPolicy iceTransportPolicy all;RTCBundlePolicy bundlePolicy balanced;RTCRtcpMuxPolicy rtcpMuxPolicy require;sequenceRTCCertificate certificates [];[EnforceRange] octet iceCandidatePoolSize 0;
};上面是RTCConfiguration的接口对象里面规定了一些值这些值需要具体的浏览器厂商或者其他设备厂商来实现下面跳过乏味的底层术语开始介绍浏览器端的rtc用法。如果有兴趣可访问这里查看WebIDL接口规范
3、用法
介绍浏览器实现webrtc的接口
3.1 new RTCPeerConnection Calling new RTCPeerConnection(configuration) creates an RTCPeerConnection object. 当调起 new RTCPeerConnection 时会创建 RTCPeerConnection 对象。 下面是在Google控制台的打印值 引用一下原文 An RTCPeerConnection object has a signaling state, a connection state,an ICE gathering state, and an ICE connection state. These are initialized when the object is created. 可以看到谷歌的实现是符合 RTCPeerConnection 规范的在这个对象的原型上有以下方法和ICE服务交互 addIceCandidate, setConfiguration, setLocalDescription, setRemoteDescription close。 文章最后会贴出UE4像素流是如何在谷歌浏览器中利用该对象进行与web端数据交互。
3.1.1 addIceCandidate方法 The addIceCandidate method provides a remote candidate to the ICE Agent addIceCandidate提供了链接ICE代理的方法当被调用时会触发以下流程
candidate将被视为该方法的参数RTCPeerConnection 会被视为链接对象如果candidate.candidate不是空字符串并且candidate.sdpMid 和candidate.sdpMLineIndex是null则promise会结束操作(reject)并抛出创建失败信息返回 chaining 操作返回 promise
可以看出addIceCandidate方法是异步操作promise
3.1.2 setConfiguration方法 The setConfiguration method updates the configuration of this RTCPeerConnection object setConfiguration提供了更新 RTCPeerConnection 对象的方法当被调用时会触发以下流程
RTCPeerConnection如果被关闭抛出无效设置错误更新配置信息
该方法需要确保链接没有断开
3.1.3 setLocalDescription方法 The setLocalDescription method instructs the RTCPeerConnection to apply the supplied RTCLocalSessionDescriptionInit as the local description. 该方法会改变本地的媒体信息状态换言之就是可能会替换正在通信的信息比如改变媒体的格式从mp4到txt,这个改变会同时在进行中的媒体信息和当前的媒体信息发生如果有一端不支持该媒体类型就会拒绝(reject),可参考此处setRemoteDescription用来改变远端的媒体信息状态
3.1.4 close方法
关闭链接
续更中。。。