RTCPeerConnection API
RTCPeerConnection
允许两个用户直接进行浏览器之间的通信。
Configuration
表A-1 RTCConfiguration
子典成员
Name | Type | Default | Description |
---|---|---|---|
iceServers | sequence<RTCIceServer> |
包含可供 ICE 使用的服务器(例如 STUN 和 TURN 服务器)的 URI 的数组。 | |
iceTransports | RTCIceTransports | all |
表示允许 ICE 引擎使用的候选对象。 |
requestIdentity | RTCIdentityOption | ifconfigured |
请参阅 RTCOfferAnswerOptions 字典的 requestIdentity 成员。 |
表A-2 RTCIceServer
子典成员
Name | Type | Description |
---|---|---|
credential | DOMString | 如果此 RTCIceServer 对象表示 TURN 服务器,则此属性指定用于该 TURN 服务器的凭据 |
urls | (DOMString or sequence<DOMString> ) |
[STUN-URI] 和 [TURN-URI] 中定义的 STUN 或 TURN URI 或其他 URI 类型。 |
username | DOMString | 如果此 RTCIceServer 对象表示 TURN 服务器,则此属性指定用于该 TURN 服务器的用户名。 |
表A-3 RTCIceTransports
枚举值
Name | Description |
---|---|
none | ICE 引擎此时不得发送或接收任何数据包。 |
relay | ICE 引擎必须仅使用媒体中继候选者,例如通过 TURN 服务器的候选者。 在某些用例中,这可以用来减少 IP 地址的泄漏。 |
all | 指定此值时,ICE 引擎可以使用任何类型的候选项。 |
Constructor
这是RTCPeerConnection构造函数:
RTCPeerConnection(configuration)
这是 RTCPeerConnection
方法:
- createOffer(RTCSessionDescriptionCallback successCallback, RTCPeerConnectionErrorCallback failureCallback, optional RTCOfferOptions options)
- createAnswer(RTCSessionDescriptionCallback successCallback, RTCPeerConnectionErrorCallback failureCallback, optional RTCOfferAnswerOptions options)
- setLocalDescription(RTCSessionDescription description, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback)
- setRemoteDescription(RTCSessionDescription description, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback)
- updateIce(RTCConfiguration configuration)
- addIceCandidate(RTCIceCandidatecandidate, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback)
- getConfiguration()
- getLocalStreams()
- getRemoteStreams()
- getStreamById(DOMString streamId)
- addStream(MediaStream stream)
- removeStream(MediaStream stream)
- close()
属性
表A-4 RTCPeerConnection
属性
Access property | Type | Name |
---|---|---|
readonly | RTCSessionDescription | remoteDescription |
readonly | RTCSignalingState | signalingState |
readonly | RTCIceGatheringState | iceGatheringState |
readonly | RTCIceConnectionState | iceConnectionState |
EventHandler | onnegotiationneeded | |
EventHandler | onicecandidate | |
EventHandler | onsignalingstatechange | |
EventHandler | onaddstream | |
EventHandler | onremovestream | |
EventHandler | oniceconnectionstatechange |
状态定义
表A-5 RTCSignalingState
Name | Description |
---|---|
stable | 没有正在进行的 offer/answer 交换。 这也是初始状态,在这种情况下,本地和远程描述为空。 |
have-local-offer | 类型为 offer 的本地描述已成功应用。 |
have-remote-offer | 类型为 offer 的远程描述已成功应用。 |
have-local-pranswer | 类型 offer 的远程描述已成功应用,类型 pranswer 的本地描述已成功应用。 |
have-remote-pranswer | 类型 offer 的本地描述已成功应用,类型 pranswer 的远程描述已成功应用。 |
closed | 连接已关闭。 |
表A-6 RTCIceGatheringState
Value | Description |
---|---|
new | 该对象刚刚创建,尚未建立任何网络。 |
gathering | ICE 引擎正在收集此 RTCPeerConnection 的候选对象。 |
complete | ICE 引擎已完成收集。 添加新接口或新 TURN 服务器之类的事件将使状态返回到收集状态。 |
表A-7 RTCIceConnectionState
Value | Description |
---|---|
new | ICE 代理正在收集地址和/或等待提供远程候选者。 |
checking | ICE 代理已在至少一个组件上接收到远程候选,并且正在检查候选对,但尚未找到连接。 除了检查外,它可能仍在收集中。 |
connected | ICE 代理已找到所有组件的可用连接,但仍在检查其他候选对以查看是否存在更好的连接。 它可能仍在聚集。 |
completed | ICE 代理已完成收集和检查,并找到了所有组件的连接。 |
failed | ICE 代理已完成所有候选对的检查,未能找到至少一个组件的连接。可能已为某些组件找到连接。 |
disconnected | 一个或多个组件的活动性检查失败。 这比失败更具攻击性,并且可能在不稳定的网络上间歇性触发(并自行解决而不采取措施)。 |
closed | ICE 代理已关闭,并且不再响应 STUN 请求。 |
当前内容版权归 Salvatore Loreto & Simon Pietro Romano 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 Salvatore Loreto & Simon Pietro Romano .