RTCPeerConnection

You’re reading the English version of this content since no translation exists yet for this locale. Help us translate this article!

초안
이 문서는 작성중입니다.

RTCPeerConnection 인터페이스는 로컬 컴퓨터와 원격 피어 간의 WebRTC 연결을 담당하며 원격 피어에 연결하기 위한 메서드들을 제공하고, 연결을 유지하고 연결 상태를 모니터링하며 더 이상 연결이 필요하지 않을 경우 연결을 종료합니다.

Constructor

RTCPeerConnection()
RTCPeerConnection() 생성자는 로컬 기기와 원격 피어 간의 연결을 나타내는 RTCPeerConnection 객체를 새로 만들어 반환합니다.

Properties

Also inherits properties from: EventTarget

canTrickleIceCandidates
읽기 속성인 RTCPeerConnection 속성의 canTrickleIceCandidates는 원격유저가 trickled ICE candidates를 승인 할 수 있는지의 여부를 알려주는 Boolean을 반환합니다.
connectionState
RTCPeerConnection 인터페이스의 읽기 속성인 connectionState는 피어 연결의 현재 상태를 알려줍니다. 이 속성은 RTCPeerConnectionState enum 값 중 하나를 문자열로 반환해줍니다.
currentLocalDescription Read only
읽기 속성인 RTCPeerConnection.currentLocalDescription은 가장 최근에 RTCPeerConnection가 성공적으로 네고시에이션을 마치고 원격 피어와 연결된, 연결인터페이스의 로컬 엔드를 설명하는 RTCSessionDescription 객체를 반환합니다. 이외에도 설명에 의해 offer 혹은 answer가 처음으로 인스턴스화 되면 ICE 에이전트에 의해 이미 생성됬을수도 있는 ICE candidate 목록이 포함되어 있습니다.
currentRemoteDescription Read only
읽기 속성인 RTCPeerConnection.currentRemoteDescription은 마지막 RTCPeerConnection 이후 가장 최근에 원격 유저와의 네고시에이션 및 연결을 성공적으로 마친 연결의 원격 엔드 포인트를 알려주는 RTCSessionDescription 객체를 반환합니다. 추가적으로 이 속성은 description에 의해 표현되는 마지막 offer 및 answer가 처음 시작되면 ICE 에이전트에 의해 생성이 되었을 수도 있는 모든 ICE candidate들의 리스트를 포함합니다.
defaultIceServers [Translate]
The read-only property RTCPeerConnection.defaultIceServers returns an array of objects based on the RTCIceServer dictionary, which indicates what, if any, ICE servers the browser will use by default if none are provided to the RTCPeerConnection in its RTCConfiguration. However, browsers are not required to provide any default ICE servers at all.
iceConnectionState Read only [Translate]
The read-only property RTCPeerConnection.iceConnectionState returns an enum of type RTCIceConnectionState which state of the ICE agent associated with the RTCPeerConnection.
iceGatheringState Read only
읽기 속성인 RTCPeerConnection.iceGatheringState는 연결 인터페이스의 ICE 수집 상태를 알려주는 RTCIceGatheringState타입의 Enum을 반환합니다. 이 속성을 활용하면, ICE candidate 수집 과정이 언제 종료되는지 감지 할 수 있습니다.
localDescription Read only
읽기 속성인 RTCPeerConnection.localDescription는 연결의 로컬 엔드에 대한 세션을 설명하는 RTCSessionDescription를 반환합니다. 아직 설정이 안되어있다면, null 입니다.
peerIdentity Read only [Translate]
The read-only RTCPeerConnection property peerIdentity returns a JavaScript Promise that resolves to an RTCIdentityAssertion which contains a DOMString identifying the remote peer.
pendingLocalDescription Read only [Translate]
The read-only property RTCPeerConnection.pendingLocalDescription returns an RTCSessionDescription object describing a pending configuration change for the local end of the connection. This does not describe the connection as it currently stands, but as it may exist in the near future. Use RTCPeerConnection.currentLocalDescription or RTCPeerConnection.localDescription to get the current state of the endpoint. For details on the difference, see Pending and current descriptions in WebRTC connectivity.
pendingRemoteDescription Read only [Translate]
The read-only property RTCPeerConnection.pendingRemoteDescription returns an RTCSessionDescription object describing a pending configuration change for the remote end of the connection. This does not describe the connection as it currently stands, but as it may exist in the near future. Use RTCPeerConnection.currentRemoteDescription or RTCPeerConnection.remoteDescription to get the current session description for the remote endpoint. For details on the difference, see Pending and current descriptions in WebRTC connectivity.
remoteDescription Read only [Translate]
The read-only property RTCPeerConnection.remoteDescription returns a RTCSessionDescription describing the session (which includes configuration and media information) for the remote end of the connection. If this hasn't been set yet, this is null.
sctp [Translate]
The read-only sctp property on the RTCPeerConnection interface returns an RTCSctpTransport describing the SCTP transport over which SCTP data is being sent and received. If SCTP hasn't been negotiated, this value is null.
signalingState Read only [Translate]
The read-only signalingState property on the RTCPeerConnection interface returns one of the string values specified by the RTCSignalingState enum; these values describe the state of the signaling process on the local end of the connection while connecting or reconnecting to another peer. See Signaling in Lifetime of a WebRTC session for more details about the signaling process.

이벤트 핸들러

Also inherits 이벤트 핸들러 from: EventTarget

onaddstream [Translate]
The RTCPeerConnection.onaddstream event handler is a property containing the code to execute when the addstream event, of type MediaStreamEvent, is received by this RTCPeerConnection. Such an event is sent when a MediaStream is added to this connection by the remote peer. The event is sent immediately after the call setRemoteDescription() and doesn't wait for the result of the SDP negotiation.
onconnectionstatechange
RTCPeerConnection.onconnectionstatechange 속성에 RTCPeerConnection 인스턴스에서 발생하는 connectionstatechange 이벤트를 처리하기 위해 호출되는 EventHandler를 정의하게됩니다. 이 이벤트는  연결의 상태 집합체가 변할 때마다 발생합니다. 이 상태 집합체는 연결에 의해 사용되는 각각의 네트워크 전송 상태들의 묶음입니다.
ondatachannel
RTCPeerConnection.ondatachannel 속성은 RTCPeerConnection에서 발생하는 datachannel 이벤트에 의해 호출되는 EventHandler입니다. 이 속성에는 함수를 정의하게됩니다. RTCDataChannelEvent의 한 종류인 이 이벤트는 원격 유저가 createDataChannel()를 호출해서 연결에 RTCDataChannel가 추가되었을 때, 전달됩니다.
onicecandidate
 RTCPeerConnection 속성의 onicecandidate 는 RTCPeerConnection 인스턴스에서 icecandidate 이벤트 발생시에 호출 하려는 함수를 지정합니다. 이 이벤트는 로컬 ICE 에이전트가 signaling 서버를 통해 원격 피어에게 메세지를 전달 할 필요가 있을때 마다 발생합니다. 그리고 ICE 에이전트가 signaling에 사용되는 기술에 대한 구체사항을 모르더라도 원격 피어와의 네고시에이션을 수행하도록 도와줍니다. 어떤 메세징 기술을 선택하던간에, 이 메소드를 사용해서 원격 피어에 ICE candidate를 전달하는 과정을 간단하게 구현 할 수 있습니다.
oniceconnectionstatechange [Translate]
The RTCPeerConnection.oniceconnectionstatechange property is an event handler which specifies a function to be called when the iceconnectionstatechange event is fired on an RTCPeerConnection instance. This happens when the state of the connection's ICE agent, as represented by the iceConnectionState property, changes.
onicegatheringstatechange
RTCPeerConnection.onicegatheringstatechange속성은 icegatheringstatechange 이벤트가 RTCPeerConnection에 전달될 때 호출이되는 함수를 정의하는 EventHandler입니다. 이이벤트는 ICE 에이전트가 ICE candidate를 수집을 하는지의 여부를 알려주는 ICE 수집 상태가 변하면 발생합니다. 하지만, ICE 수집 상태를 모니터링 해야하는 특별한 이유가 없으면 이 이벤트를 감시 할 필요는 없습니다.
onidentityresult
RTCPeerConnection.onidentityresult 이벤트 핸들러는 RTCPeerConnection가 RTCIdentityEvent 타입의 identityresult 이벤트를 수신하게되면 실행되는 코드를 담고 있는 속성입니다. 이러한 이벤트는 getIdentityAssertion() 혹은 offer 혹은 answer를 생성하는 과정에 의해 식별인자 주장이 생성되면 전송됩니다.
onidpassertionerror [Translate]
The RTCPeerConnection.onidpassertionerror event handler is a property containing the code to execute whent the idpassertionerror event, of type RTCIdentityErrorEvent, is received by this RTCPeerConnection. Such an event is sent when the associated identity provider (IdP) encounters an error while generating an identity assertion.
onidpvalidationerror [Translate]
The RTCPeerConnection.onidpvalidationerror event handler is a property containing the code to execute whent the idpvalidationerror event, of type RTCIdentityErrorEvent, is received by this RTCPeerConnection. Such an event is sent when the associated identity provider (IdP) encounters an error while validating an identity assertion.
onnegotiationneeded [Translate]
The RTCPeerConnection interface's onnegotiationneeded property is an EventListener which specifies a function which is called to handle the negotiationneeded event when it occurs on an RTCPeerConnection instance. This event is fired when a change has occurred which requires session negotiation. This negotiation should be carried out as the offerer, because some session changes cannot be negotiated as the answerer.
onpeeridentity [Translate]
The RTCPeerConnection.onpeeridentity event handler is a property containing the code to execute whent the peeridentity event, of type Event, is received by this RTCPeerConnection. Such an event is sent when an identity assertion, received from a peer, has been successfully validated.
onremovestream [Translate]
The RTCPeerConnection.onremovestream event handler is a property containing the code to execute when the removestream event, of type MediaStreamEvent, is received by this RTCPeerConnection. Such an event is sent when a MediaStream is removed from this connection.
onsignalingstatechange [Translate]
The onsignalingstatechange property of the RTCPeerConnection interface is an EventHandler which specifies a function to be called when the signalingstatechange event occurs on an RTCPeerConnection interface.
ontrack
RTCPeerConnection 속성인 ontrack은 RTCPeerConnection에 트랙이 등록됨을 알려주는 track가 발생하면 호출되는 함수를 지정하는 EventHandler입니다.

Methods

Also inherits methods from: EventTarget

addIceCandidate()
RTCPeerConnection을 사용하는 웹이나 앱이 신규 ICE candidate를 signaling 채널을 통해 원격 유저로부터 수신하게되면, RTCPeerConnection.addIceCandidate()를 호출해서 브라우저의 ICE 에이전트에게 새로 수신한 candidate를 전달합니다.
addStream() [Translate]
The obsolete RTCPeerConnection method addStream() adds a MediaStream as a local source of audio or video. Instead of using this obsolete method, you should instead use addTrack() once for each track you wish to send to the remote peer.
addTrack()
RTCPeerConnection의 메소드인 addTrack()은 다른 유저에게 전송될 트랙들의 묶음에 신규 미디어 트랙을 추가합니다.
close()
RTCPeerConnection.close() 메소드로 피어 연결을 종료합니다.
createAnswer()
RTCPeerConnection 인터페이스의 createAnswer() 메소드는 WebRTC 연결 중 발생하는 offer/answer 네고시에이션에서 원격 유저로부터 받은 offer에 대한 SDP answer를 생성합니다. 이 answer는 세션이 이미 부착된 미디어, 브라우저에서 지원하는 코덱 및 옵션, 그리고 이미 수집된 ICE candidate에 대한 정보를 담고 잇습니다. Answer는 반환 된 Promise에 전달되고, 그 다음에는 네고시에이션 과정을 계속 진행하기 위해서 offer의 소스에게 전달되야합니다.
createDataChannel()
RTCPeerConnection 인터페이스의 createDataChannel() 메소드는 어떤 형식의 데이터든 송신 할 수 있도록 원격 유저와 연결하는 신규 채널을 생성합니다.
createOffer() [Translate]
The createOffer() method of the RTCPeerConnection interface initiates the creation of an SDP offer for the purpose of starting a new WebRTC connection to a remote peer.
generateCertificate()
RTCPeerConnection 인터페이스의 generateCertificate() 메소드는 X.509 인증서와 해당하는 개인 키를 생성하고 저장합니다. 그리고 접근이 가능한 RTCCertificate를 반환합니다.
getConfiguration()
RTCPeerConnection.getConfiguration() 메소드는 호출 된 RTCPeerConnection의 현재 설정을 알려주는 RTCConfiguration 객체를 반환합니다.
getIdentityAssertion()
RTCPeerConnection.getIdentityAssertion() 메소드는 식별 주장의 수집을 시작합니다. 이 메소드는 signalingState가 "closed" 상태가 아닐 때에만 유효합니다.
getLocalStreams() [Translate]
The RTCPeerConnection.getLocalStreams() method returns an array of MediaStream associated with the local end of the connection. The array may be empty.
getReceivers()
RTCPeerConnection.getReceivers() 메소드는 RTCRtpReceiver 객체의 배열을 반환합니다. 이 배열의 각 요소들은 RTP 리시버를 나타냅니다. 각각의 RTP 리시버는 RTCPeerConnection에 대한 MediaStreamTrack의 데이터를 수신하고 디코딩 합니다.
getRemoteStreams() [Translate]
The RTCPeerConnection.getRemoteStreams() method returns an array of MediaStream associated with the remote end of the connection. The array may be empty.
getSenders()
RTCPeerConnection의 getSenders() 메소드는 RTCRtpSender 객체의 배열을 반환합니다. 배열의 각 객체는 하나의 트랙의 데이터의 송신을 담당하는 RTP sender를 나타냅니다.
getStats() [Translate]
The RTCPeerConnection method getStats() returns a promise which resolves with data providing statistics about either the overall connection or about the specified MediaStreamTrack.
getStreamById() [Translate]
The RTCPeerConnection.getStreamById() method returns the MediaStream with the given id that is associated with local or remote end of the connection. If no stream matches, it returns null.
getTransceivers()
RTCPeerConnection 인터페이스의 getTransceivers() 메소드는 연결에서 데이터 전송 및 수신에 사용되는 RTCRtpTransceiver 객체의 리스트를 반환합니다.
removeStream() [Translate]
The RTCPeerConnection.removeStream() method removes a MediaStream as a local source of audio or video. If the negotiation already happened, a new one will be needed for the remote peer to be able to use it. Because this method has been deprecated, you should instead use removeTrack() if your target browser versions have implemented it.
removeTrack()
RTCPeerConnection.removeTrack() 메소드는 RTCPeerConnection.getSenders()에 의해 보고된 발신자 목록에서 해당 RTCRtpSender를 실제로 제거하지 않은채, 지정한 트랙에서 미디어 전송을 중단하도록 연결의 로컬엔드에 알려줍니다.
restartIce()
WebRTC API의 RTCPeerConnection 인터페이스에서는 restartIce() 메소드를 제공해서 연결의 양쪽에서 ICE candidate의 재수집 요청을 간단하게 할 수 있게 만들어줍니다.
setConfiguration()
RTCPeerConnection.setConfiguration() 메소드는 RTCConfiguration객체에 명시한 값을 가지고 RTCPeerConnection의 현재 설정을 지정합니다. 이 메소드를 사용해서 연결에서 사용되는 ICE 서버와 전송 정책을 변경 할 수 있습니다.
setIdentityProvider()
RTCPeerConnection.setIdentityProvider() 메소드는 이름, 통신에 사용된 프로토콜 (옵션), 유저 이름 (옵션)으로 구성된 세 가지 매개변수에 식별 제공자 (Identity Provider, IdP)를 지정합니다. IdP는 주장 (assertion)이 필요한 순간에만 사용 될 것입니다.
setLocalDescription()
RTCPeerConnection.setLocalDescription() 메소드는 연결 인터페이스와 관련이 있는 로 설명 (local description)을 변경합니다. 로컬 설명은 미디어 형식을 포함하는 연결의 로컬 엔드에 대한 속성을 명시합니다.
setRemoteDescription() [Translate]
The RTCPeerConnection.setRemoteDescription() method sets the specified session description as the remote peer's current offer or answer. This description specifies the properties of the remote end of the connection, including the media format.

사용되지 않는 메서드

다음 메서드는 오래 전부터 사용되지 않았으며 모든 주요 브라우저에서 구현되지 않았습니다.

RTCPeerConnection.createDTMFSender()
특정 MediaStreamTrack와 관련된 신규 RTCDTMFSender를 생성합니다. RTCDTMFSender는 연결을 통해 DTMF 전화 신호를 보낼 수 있습니다. 

이벤트

addEventListener()를 이용하여 아래 이벤트를 리스닝하거나 이 인터페이스의 oneventname 프로퍼티에 이벤트 리스너를 할당할 수 있습니다.

connectionstatechange
RTCPeerConnection의 연결상태가 바뀌면, RTCPeerConnection 객체에 전달합니다. 이는 또한,  onconnectionstatechange 이벤트 핸들러 속성을 통해 사용이 가능합니다. 
datachannel
원격 피어가 RTCDataChannel을 연결에 추가하게되면 RTCPeerConnection 객체에 전달합니다. 이는 또한, ondatachannel 이벤트 핸들러 속성을 통해 사용이 가능합니다.
icecandidate
특정 ICE candidate가 원격 피어에 전달되도록 피어 연결에 요청을 보냅니다. 또한, ondatachannel 이벤트 핸들러 속성을 통해 사용이 가능합니다.
icecandidateerror
ICE candidate를 수집하는 과정에서 에러가 발생하면 연결에 RTCPeerConnectionIceErrorEvent 에러 타입을 보냅니다. 이는 또한, onicecandidateerror 이벤트 핸들러 속성을 통해 사용이 가능합니다.
iceconnectionstatechange
연결이 끊기는 상황과 같이 ICE 연결의 상태가 변하게되면 RTCPeerConnection에 전달합니다. 이는 또한, oniceconnectionstatechange 이벤트 핸들러 속성을 통해 사용이 가능합니다.
icegatheringstatechange
iceGatheringState에 의해 반영되는 ICE 계층의 수집 상태가 변하면, RTCPeerConnection에 전달합니다. 계층의 수집 상태는 ICE 네고시에이션이 아직 시작을 안했거나 (new), 시작하고 candidate를 수집하는 중이거나 (gathering), 혹은 수집이 완료 (complete)된 상태로 나눠집니다. 이는 또한, onicegatheringstatechange 이벤트 핸들러 속성을 통해 사용이 가능합니다.
isolationchange
연결과 관련이 있는 하나의 MediaStreamTrack 객체가 있는 isolated 속성의 값이 변하면, RTCPeerConnection에 전달합니다. 만약 미디어 컨텐츠가 인증이 되어있지 않거나, 트랙이 cross-origin source (CORS)에서 오는 것이라면 트랙의 상태는 isolated이 됩니다. 이는 또한, onisolationchange 이벤트 핸들러 속성을 통해 사용이 가능합니다.
negotiationneeded
ICE 연결의 네고시에이션 혹은 네고시에이션을 다시 수행해야 할 때, RTCPeerConnection에 전달됩니다. 이는 연결이 처음 생성되는 순간뿐만아니라 네트워크 조건이 바뀌게 되면 발생합니다. 리시버는 offer를 생성하고, 이를 다른 피어에 전달하기위해 응답해야합니다. 이는 또한, onnegotiationneeded 이벤트 핸들러 속성을 통해 사용이 가능합니다.
signalingstatechange
연결의 ICE 신호 상태가 변경되면 signalingstatechange이벤트를 RTCPeerConnection에 전달합니다. 이는 또한, onsignalingstatechange 이벤트 핸들러 속성을 통해 사용이 가능합니다.
statsended
모니터링이 되던 statistics 객체가 삭제되면, statsended이벤트를 전달합니다. RTCStatsEvent는 삭제된 객체의 마지막 리포트를 포함합니다. 마지막 리포트를 전달받고나서 여러개의 객체가 삭제되었다면, 여러 객체에 대한 마지막 리포트를 포함합니다. 예를 들어 연결이 종료되거나 삭제되면, statistics 객체는 삭제됩니다. 
The statsended event is sent when a statistics object being monitored is deleted. The RTCStatsEvent includes the final report on the deleted object (or objects, if multiple objects have been deleted since the last report was delivered). A statistics object is deleted, for example, when the connection is closed and deleted.
Available as the onstatsended event handler property.
track
연결을 구성하고 있는 RTCRtpReceiver 인스턴스들 중 하나에 신규 트랙이 추가된 후에, track이벤트를 보냅니다. 이는 또한, ontrack 이벤트 핸들러 속성을 통해 사용이 가능합니다.

사용되지 않는 이벤트

addstream
Sent when a new MediaStream has been added to the connection. Instead of watching for this obsolete event, you should watch each for track events; one is sent for each MediaStreamTrack added to the connection.
Available as the onaddstream event handler property.
identityresult
In old versions of the WebRTC specification, this event was used to indicate that an identity assertion is available. Now, you should instead wait for a the promise returned by peerIdentity to resolve with an identity.
Also available using the onidentityresult event handler property.
idpassertionerror
In old versions of the WebRTC specification, this event was used to indicate that an error occurred while attempting to generate an identity assertion. Now, you should instead wait for a the promise returned by peerIdentity to be rejected with an error.
Also available as the onidpinsertionerror event handler property.
idpvalidationerror
In old versions of the WebRTC specification, this event was used to indicate that an error occurred while attempting to validate an identity assertion. Now, you should instead wait for a the promise returned by peerIdentity to be rejected with an error.
Also available using the onpeerdentity event handler property.
peeridentity
In old versions of the WebRTC specification, this event was used to deliver a received identity. Now, you should instead wait for a the promise returned by peerIdentity to resolve with an identity.
removestream
Sent to the RTCPeerConnection when a MediaStream is removed from the connection. Instead of watching for this obsolete event, you should watch each stream for removetrack events on each stream within the RTCPeerConnection.
Also available as the onaddstream event handler property.

상수

RTCBundlePolicy 열거체

The RTCBundlePolicy enum defines string constants which are used to request a specific policy for gathering ICE candidates if the remote peer isn't compatible with the SDP BUNDLE standard for bundling multiple media streams on a single transport link.

In technical terms, a BUNDLE lets all media flow between two peers flow across a single 5-tuple; that is, from the same IP and port on one peer to the same IP and port on the other peer, using the same transport protocol.

상수명 설명
"balanced" On BUNDLE-aware connections, the ICE agent should gather candidates for all of the media types in use (audio, video, and data). Otherwise, the ICE agent should only negotiate one audio and video track on separate transports.
"max-compat" The ICE agent should gather candidates for each track, using separate transports to negotiate all media tracks for connections which aren't BUNDLE-compatible.
"max-bundle" The ICE agent should gather candidates for just one track. If the connection isn't BUNDLE-compatible, then the ICE agent should negotiate just one media track.

RTCIceConnectionState 열거체

The RTCIceConnectionState enum defines the string constants used to describe the current state of the ICE agent and its connection to the ICE server (that is, the STUN or TURN server).

상수명 설명
"new" The ICE agent is gathering addresses or is waiting to be given remote candidates through calls to RTCPeerConnection.addIceCandidate() (or both).
"checking" The ICE agent has been given one or more remote candidates and is checking pairs of local and remote candidates against one another to try to find a compatible match, but has not yet found a pair which will allow the peer connection to be made. It's possible that gathering of candidates is also still underway.
"connected" A usable pairing of local and remote candidates has been found for all components of the connection, and the connection has been established. It's possible that gathering is still underway, and it's also possible that the ICE agent is still checking candidates against one another looking for a better connection to use.
"completed" The ICE agent has finished gathering candidates, has checked all pairs against one another, and has found a connection for all components.
"failed" The ICE candidate has checked all candidates pairs against one another and has failed to find compatible matches for all components of the connection. It is, however, possible that the ICE agent did find compatible connections for some components.
"disconnected" Checks to ensure that components are still connected failed for at least one component of the RTCPeerConnection. This is a less stringent test than "failed" and may trigger intermittently and resolve just as spontaneously on less reliable networks, or during temporary disconnections. When the problem resolves, the connection may return to the "connected" state.
"closed" The ICE agent for this RTCPeerConnection has shut down and is no longer handling requests.

RTCIceGatheringState enum

RTCPeerConnection.iceGatheringState 속성을 사용하게되면 반환되는 RTCIceGatheringState enum은 현재의 ICE 수집 상태를 반영하여 알려주는 문자열 상수입니다. icegatheringstatechange 타입의 이벤트를 감시해서 이 값이 언제 변하는지 확인 할 수 있습니다.

상수명 설명
"new" 피어 연결이 새로 생성되었지만, 아직 네트워킹은 시작되지 않은 상태
"gathering" ICE 에이전트가 연결을 위한 ICE candidate를 수집하는 과정에 있음을 알려주는 상태
"complete" ICE 에이전트가 candidate 수집을 완료한 상태. 새로운 인터페이스가 추가되거나, 신규 ICE 서버가 추가와 같이 신규 ICE candidate를 수집해야하는 상황이 오면, 상태가 complete에서 gathering으로 다시 바뀝니다.

RTCIceTransportPolicy enum

The RTCIceTransportPolicy enum defines string constants which can be used to limit the transport policies of the ICE candidates to be considered during the connection process.

상수명 설명
"all" All ICE candidates will be considered.
"public" Only ICE candidates with public IP addresses will be considered. Removed from the specification's May 13, 2016 working draft.
"relay" Only ICE candidates whose IP addresses are being relayed, such as those being passed through a TURN server, will be considered.

RTCPeerConnectionState enum

RTCPeerConnectionState enum은 RTCPeerConnection이 존재 할 수 도있는 상태에 대해 알려주는 문자열 상수를 정의합니다. 이 값들은 {domxref("RTCPeerConnection.connectionState", "connectionState")}} 속성에 의해 반홥됩니다. 근본적으로 이 상태는 연결에 의해 사용되는 모든 ICE 전송 (RTCIceTransport 혹은 RTCDtlsTransport의 타입)의 상태 집합을 나타냅니다. 

상수명 설명
"new"

연결의 ICE 전송 중 적어도 한 개가 새로 만들어진 "new" 상태이고,  그 외의 나머지는 다음의 상태 중 하나가 아니여야 합니다: "connecting", "checking", "failed", 혹은 "disconnected", 혹은  모든 연결의 전송이 끝났다는 "closed"상태.

"connecting" 하나 혹은 여러개의 ICE 전송이 현재 연결을 구성하는 중에 있음을 알려주는 값. 이는 RTCIceConnectionState"checking" 혹은 "connected"이며, 그 어떤 전송도 "failed"상태가 아니여야합니다. <<< Make this a link once I know where that will be documented
"connected" 연결에 의해 사용되는 모든 ICE 전송이 사용 중 ("connected" 혹은 "completed")이거나, 종료된 상태입니다. 추가적으로 최소 하나의 전송이 "connected" 혹은 "completed"입니다.
"disconnected" 연결에 대한 최소 한 개의 ICE 전송이 "disconnected"상태이고, 그 외의 다른 전송 상태는 "failed", "connecting", 혹은 "checking"이 아님을 알려주는 값. 
"failed"

연결에 대한 하나 혹은 여러개의 ICE 전송이 "failed"상태임을 알려주는 값.

"closed"

RTCPeerConnection 개통되지 않음을 알려주는 값.

2016년 5월 13일에 작성된 명세서의 초안에 따르면, 이 값은 RTCPeerConnectionState enum 안에 존재했었습니다. 따라서, signalingState의 값을 통해 찾을 수 있습니다. 

RTCRtcpMuxPolicy enum

The RTCRtcpMuxPolicy enum defines string constants which specify what ICE candidates are gathered to support non-multiplexed RTCP. <<<add a link to info about multiplexed RTCP.

상수명 설명
"negotiate" Instructs the ICE agent to gather both RTP and RTCP candidates. If the remote peer can multiplex RTCP, then RTCP candidates are multiplexed atop the corresponding RTP candidates. Otherwise, both the RTP and RTCP candidates are returned, separately.
"require" Tells the ICE agent to gather ICE candidates for only RTP, and to multiplex RTCP atop them. If the remote peer doesn't support RTCP multiplexing, then session negotiation fails.

RTCSignalingState enum

The RTCSignalingState enum specifies the possible values of RTCPeerConnection.signalingState, which indicates where in the process of signaling the exchange of offer and answer the connection currently is.

상수명 설명
"stable" There is no ongoing exchange of offer and answer underway. This may mean that the RTCPeerConnection object is new, in which case both the localDescription and remoteDescription are null; it may also mean that negotiation is complete and a connection has been established.
"have-local-offer" The local peer has called RTCPeerConnection.setLocalDescription(), passing in SDP representing an offer (usually created by calling RTCPeerConnection.createOffer()), and the offer has been applied successfully.
"have-remote-offer" The remote peer has created an offer and used the signaling server to deliver it to the local peer, which has set the offer as the remote description by calling RTCPeerConnection.setRemoteDescription().
"have-local-pranswer" The offer sent by the remote peer has been applied and an answer has been created (usually by calling RTCPeerConnection.createAnswer()) and applied by calling RTCPeerConnection.setLocalDescription(). This provisional answer describes the supported media formats and so forth, but may not have a complete set of ICE candidates included. Further candidates will be delivered separately later.
"have-remote-pranswer" A provisional answer has been received and successfully applied in response to an offer previously sent and established by calling setLocalDescription().
"closed"

The connection is closed.

This value moved into the RTCPeerConnectionState enum in the May 13, 2016 draft of the specification, as it reflects the state of the RTCPeerConnection, not the signaling connection. You now detect a closed connection by checking for connectionState to be "closed" instead.

사양

사양명 상태 설명
WebRTC 1.0: Real-time Communication Between Browsers
The definition of 'RTCPeerConnection' in that specification.
Candidate Recommendation 초기 정의.

브라우저 호환성

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
RTCPeerConnectionChrome Full support 23Edge Full support YesFirefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support YesWebView Android Full support YesChrome Android Full support 25Firefox Android Full support 44
Full support 44
No support 22 — 44
Prefixed
Prefixed Implemented with the vendor prefix: moz
Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
Full support 6.0
No support 5.0 — 6.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
RTCPeerConnection() constructorChrome Full support 23
Notes
Full support 23
Notes
Notes Before Chrome 63 the default value for the RTCConfiguration.rtcpMuxPolicy parameter was "negotiate"
Edge Full support YesFirefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari ? WebView Android Full support Yes
Notes
Full support Yes
Notes
Notes Before Chrome 63 the default value for the RTCConfiguration.rtcpMuxPolicy parameter was "negotiate"
Chrome Android Full support Yes
Notes
Full support Yes
Notes
Notes Before Chrome 63 the default value for the RTCConfiguration.rtcpMuxPolicy parameter was "negotiate"
Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS ? Samsung Internet Android Full support 6.0
addIceCandidateChrome Full support 51
Notes
Full support 51
Notes
Notes Promise-based version.
Full support 24
Edge Full support 15Firefox Full support 22
Notes
Full support 22
Notes
Notes Starting in Firefox 68, the candidate parameter is optional when calling addIceCandidate(). A null value for candidate indicates no more candidates will be sent, while an empty candidate string indicates that no more candidates will be sent for the current generation of candidates.
IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support 51
Notes
Full support 51
Notes
Notes Promise-based version.
Full support Yes
Chrome Android Full support 51
Notes
Full support 51
Notes
Notes Promise-based version.
Full support Yes
Firefox Android Full support 44
Notes
Full support 44
Notes
Notes Starting in Firefox 68, the candidate parameter is optional when calling addIceCandidate(). A null value for candidate indicates no more candidates will be sent, while an empty candidate string indicates that no more candidates will be sent for the current generation of candidates.
Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
Notes
Full support 6.0
Notes
Notes Promise-based version and unprefixed.
No support 5.0 — 6.0
Notes
Notes Promise-based version.
addStream
Deprecated
Chrome Full support 24Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari ? WebView Android Full support YesChrome Android Full support YesFirefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS ? Samsung Internet Android Full support 6.0
addstream event
Deprecated
Chrome Full support 24Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43Safari No support NoWebView Android Full support YesChrome Android Full support 25Firefox Android Full support 44Opera Android Full support 43Safari iOS ? Samsung Internet Android Full support 6.0
addTrackChrome Full support 64Edge Full support YesFirefox Full support 22IE No support NoOpera Full support 51Safari Full support 11WebView Android Full support 64Chrome Android Full support 64Firefox Android Full support 44Opera Android Full support 47Safari iOS Full support YesSamsung Internet Android Full support 6.0
addTransceiverChrome Full support 69Edge No support NoFirefox Full support 59IE No support NoOpera No support NoSafari Full support 11WebView Android Full support 69Chrome Android Full support 69Firefox Android Full support 59Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
canTrickleIceCandidatesChrome No support NoEdge Full support 15Firefox Full support 47IE No support NoOpera No support NoSafari ? WebView Android No support NoChrome Android No support NoFirefox Android Full support 44Opera Android No support NoSafari iOS ? Samsung Internet Android Full support 6.0
closeChrome Full support 23Edge Full support 15Firefox Full support YesIE No support NoOpera Full support YesSafari Full support 11WebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
connectionStateChrome Full support 72Edge No support NoFirefox No support NoIE No support NoOpera No support NoSafari Full support 11WebView Android Full support 72Chrome Android Full support 72Firefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
connectionstatechange eventChrome Full support 72Edge No support NoFirefox No support NoIE No support NoOpera No support NoSafari Full support 11WebView Android Full support 72Chrome Android Full support 72Firefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
createAnswerChrome Full support 51
Notes
Full support 51
Notes
Notes Promise-based version.
Full support 24
Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support 51
Notes
Full support 51
Notes
Notes Promise-based version.
Full support Yes
Chrome Android Full support 51
Notes
Full support 51
Notes
Notes Promise-based version.
Full support Yes
Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
Notes
Full support 6.0
Notes
Notes Promise-based version and unprefixed.
No support 5.0 — 6.0
Notes
Notes Promise-based version.
createDataChannelChrome Full support 25Edge No support NoFirefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support YesChrome Android Full support 25Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support 11Samsung Internet Android Full support 6.0
createDTMFSender
Deprecated
Chrome Full support 27Edge Full support YesFirefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari ? WebView Android Full support YesChrome Android Full support 27Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS ? Samsung Internet Android Full support 6.0
createOfferChrome Full support 51
Notes
Full support 51
Notes
Notes Promise-based version.
Full support 24
Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support 51
Notes
Full support 51
Notes
Notes Promise-based version.
Full support Yes
Chrome Android Full support 51
Notes
Full support 51
Notes
Notes Promise-based version.
Full support Yes
Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
Notes
Full support 6.0
Notes
Notes Promise-based version and unprefixed.
No support 5.0 — 6.0
Notes
Notes Promise-based version.
currentLocalDescriptionChrome Full support 70Edge Full support YesFirefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support 70Chrome Android Full support 70Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
currentRemoteDescriptionChrome Full support 70Edge No support NoFirefox Full support 57IE No support NoOpera No support NoSafari Full support 11WebView Android Full support 70Chrome Android Full support 70Firefox Android Full support YesOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
datachannel eventChrome Full support 25Edge Full support YesFirefox Full support 22IE No support NoOpera Full support 43Safari Full support 11WebView Android Full support YesChrome Android Full support 25Firefox Android Full support 44Opera Android Full support 43Safari iOS ? Samsung Internet Android Full support 6.0
defaultIceServersChrome No support NoEdge Full support YesFirefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari ? WebView Android No support NoChrome Android No support NoFirefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS ? Samsung Internet Android Full support 6.0
generateCertificateChrome Full support 48Edge Full support YesFirefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari ? WebView Android Full support 48Chrome Android Full support 48Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS ? Samsung Internet Android Full support 6.0
getConfigurationChrome Full support 70Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support 70Chrome Android Full support 70Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
getDefaultIceServersChrome No support NoEdge ? Firefox ? IE No support NoOpera ? Safari ? WebView Android No support NoChrome Android No support NoFirefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?
getIdentityAssertionChrome No support NoEdge Full support YesFirefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari ? WebView Android No support NoChrome Android No support NoFirefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS ? Samsung Internet Android Full support 6.0
getLocalStreamsChrome Full support 27Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari ? WebView Android Full support YesChrome Android Full support 27Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS ? Samsung Internet Android Full support 6.0
getReceiversChrome Full support 59Edge Full support YesFirefox Full support 22IE No support NoOpera Full support 46Safari Full support 11WebView Android Full support 59Chrome Android Full support 59Firefox Android Full support 44Opera Android Full support 43Safari iOS Full support YesSamsung Internet Android Full support 6.0
getRemoteStreamsChrome Full support 27Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari ? WebView Android Full support YesChrome Android Full support 27Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS ? Samsung Internet Android Full support 6.0
getSendersChrome Full support 64Edge Full support YesFirefox Full support 22IE No support NoOpera Full support 51Safari Full support 11WebView Android Full support 64Chrome Android Full support 64Firefox Android Full support 44Opera Android Full support 47Safari iOS Full support YesSamsung Internet Android Full support 6.0
getStatsChrome Full support 58
Notes
Full support 58
Notes
Notes Promise resolves with RTCStatsReport.
Full support 54
Notes
Notes Promise-based version.
Full support 24
Edge Full support 15Firefox Full support YesIE No support NoOpera Full support 45Safari Full support 11WebView Android Full support 58
Notes
Full support 58
Notes
Notes Promise resolves with RTCStatsReport.
Full support 54
Notes
Notes Promise-based version.
Full support Yes
Chrome Android Full support 58
Notes
Full support 58
Notes
Notes Promise resolves with RTCStatsReport.
Full support 54
Notes
Notes Promise-based version.
Full support Yes
Firefox Android Full support YesOpera Android Full support 43Safari iOS Full support YesSamsung Internet Android Full support Yes
getStreamByIdChrome No support 56 — 62Edge Full support 15Firefox No support 22 — 53IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari ? WebView Android No support 56 — 62Chrome Android No support 56 — 62Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS ? Samsung Internet Android Full support 6.0
icecandidate eventChrome Full support 24Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43Safari Full support 11WebView Android Full support YesChrome Android Full support 25Firefox Android Full support 44Opera Android Full support 43Safari iOS ? Samsung Internet Android Full support 6.0
iceConnectionStateChrome Full support 26Edge Full support 15Firefox Full support 52IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support YesChrome Android Full support 26Firefox Android Full support YesOpera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 7.0
iceconnectionstatechange eventChrome Full support 28Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43Safari Full support 11WebView Android Full support YesChrome Android Full support 28Firefox Android Full support 44Opera Android Full support 43Safari iOS ? Samsung Internet Android Full support 6.0
iceGatheringStateChrome Full support 25Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support YesChrome Android Full support 25Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
identityresult event
Deprecated
Chrome No support NoEdge Full support YesFirefox Full support 22IE No support NoOpera Full support 43Safari ? WebView Android No support NoChrome Android No support NoFirefox Android Full support 44Opera Android Full support 43Safari iOS ? Samsung Internet Android Full support 6.0
idpassertionerror event
Deprecated
Chrome No support NoEdge Full support YesFirefox Full support 22IE No support NoOpera Full support 43Safari ? WebView Android No support NoChrome Android No support NoFirefox Android Full support 44Opera Android Full support 43Safari iOS ? Samsung Internet Android Full support 6.0
idpvalidationerror event
Deprecated
Chrome No support NoEdge Full support YesFirefox Full support 22IE No support NoOpera Full support 43Safari ? WebView Android No support NoChrome Android No support NoFirefox Android Full support 44Opera Android Full support 43Safari iOS ? Samsung Internet Android Full support 6.0
localDescriptionChrome Full support 24Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support YesChrome Android Full support 25Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
negotiationneeded eventChrome Full support 24Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43Safari Full support 11WebView Android Full support YesChrome Android Full support YesFirefox Android Full support 44Opera Android Full support 43Safari iOS ? Samsung Internet Android Full support 6.0
onaddstream
Deprecated
Chrome Full support 24Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari No support NoWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS No support NoSamsung Internet Android Full support 6.0
onconnectionstatechangeChrome Full support 72Edge No support NoFirefox No support NoIE No support NoOpera No support NoSafari Full support 11WebView Android Full support 72Chrome Android Full support 72Firefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
ondatachannelChrome Full support 25Edge Full support YesFirefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support YesChrome Android Full support 25Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
onicecandidateChrome Full support 24Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support YesChrome Android Full support YesFirefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
onicecandidateerrorChrome No support NoEdge ? Firefox ? IE No support NoOpera ? Safari ? WebView Android No support NoChrome Android No support NoFirefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?
oniceconnectionstatechangeChrome Full support 28Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support YesChrome Android Full support 28Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
onicegatheringstatechangeChrome Full support 59Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support 59Chrome Android Full support 59Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 7.0
onidentityresultChrome No support NoEdge Full support YesFirefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari ? WebView Android No support NoChrome Android No support NoFirefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS ? Samsung Internet Android Full support 6.0
onidpassertionerrorChrome No support NoEdge Full support YesFirefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari ? WebView Android No support NoChrome Android No support NoFirefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS ? Samsung Internet Android Full support 6.0
onidpvalidationerrorChrome No support NoEdge Full support YesFirefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari ? WebView Android No support NoChrome Android No support NoFirefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS ? Samsung Internet Android Full support 6.0
onnegotiationneededChrome Full support 24Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support YesChrome Android Full support YesFirefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
onpeeridentityChrome No support NoEdge Full support YesFirefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari ? WebView Android No support NoChrome Android No support NoFirefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS ? Samsung Internet Android Full support 6.0
onremovestream
Deprecated
Chrome Full support 24Edge Full support 15Firefox No support 22 — 60IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari No support NoWebView Android Full support YesChrome Android Full support YesFirefox Android No support 44 — 60Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS No support NoSamsung Internet Android Full support 6.0
onsignalingstatechangeChrome Full support 28Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support YesChrome Android Full support 28Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
ontrackChrome Full support 64Edge Full support YesFirefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support 64Chrome Android Full support 64Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
peerIdentityChrome No support NoEdge Full support YesFirefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari ? WebView Android No support NoChrome Android No support NoFirefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS ? Samsung Internet Android Full support 6.0
peeridentity event
Deprecated
Chrome No support NoEdge Full support YesFirefox Full support 22IE No support NoOpera Full support 43Safari ? WebView Android No support NoChrome Android No support NoFirefox Android Full support 44Opera Android Full support 43Safari iOS ? Samsung Internet Android Full support 6.0
pendingLocalDescriptionChrome Full support 70Edge Full support YesFirefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support 70Chrome Android Full support 70Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
pendingRemoteDescriptionChrome Full support 70Edge Full support YesFirefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support 70Chrome Android Full support 70Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
remoteDescriptionChrome Full support 24Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version and unprefixed.
No support 38 — 43
Notes
Notes Promise-based version.
Safari Full support 11WebView Android Full support YesChrome Android Full support YesFirefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version and unprefixed.
No support 41 — 43
Notes
Notes Promise-based version.
Safari iOS Full support YesSamsung Internet Android Full support 6.0
removeStreamChrome Full support 24Edge Full support 15Firefox No support 22 — 51IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari ? WebView Android Full support YesChrome Android Full support YesFirefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS No support 11 — 12Samsung Internet Android Full support 6.0
removestream eventChrome Full support 24Edge Full support 15Firefox No support 22 — 60IE No support NoOpera Full support 43Safari No support NoWebView Android Full support YesChrome Android Full support 25Firefox Android No support 44 — 60Opera Android Full support 43Safari iOS No support NoSamsung Internet Android Full support 6.0
removeTrackChrome Full support 64Edge Full support YesFirefox Full support 22IE No support NoOpera Full support 51Safari Full support 11WebView Android Full support 64Chrome Android Full support 64Firefox Android Full support 44Opera Android Full support 47Safari iOS Full support YesSamsung Internet Android Full support 6.0
restartIce() methodChrome Full support 77Edge No support NoFirefox Full support 70IE No support NoOpera No support NoSafari No support NoWebView Android Full support 77Chrome Android Full support 77Firefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
sctpChrome Full support 76Edge No support NoFirefox No support No
Notes
No support No
Notes
Notes See bug 1278299.
IE No support NoOpera No support NoSafari No support NoWebView Android Full support 76Chrome Android Full support 76Firefox Android No support No
Notes
No support No
Notes
Notes See bug 1278299.
Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
setConfigurationChrome Full support 48Edge Full support YesFirefox No support No
Notes
No support No
Notes
Notes See bug 1253706.
IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support 48Chrome Android Full support 48Firefox Android No support No
Notes
No support No
Notes
Notes See bug 1253706.
Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
setIdentityProviderChrome No support NoEdge Full support YesFirefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari ? WebView Android No support NoChrome Android No support NoFirefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS ? Samsung Internet Android Full support 6.0
setLocalDescriptionChrome Full support 51
Notes
Full support 51
Notes
Notes Promise-based version.
Full support 24
Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support 51
Notes
Full support 51
Notes
Notes Promise-based version.
Full support Yes
Chrome Android Full support 51
Notes
Full support 51
Notes
Notes Promise-based version.
Full support Yes
Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
Notes
Full support 6.0
Notes
Notes Promise-based version and unprefixed.
No support 5.0 — 6.0
Notes
Notes Promise-based version.
setRemoteDescription()Chrome Full support 51
Notes
Full support 51
Notes
Notes Promise-based version.
Full support 24
Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support 51
Notes
Full support 51
Notes
Notes Promise-based version.
Full support Yes
Chrome Android Full support 51
Notes
Full support 51
Notes
Notes Promise-based version.
Full support Yes
Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
signalingStateChrome Full support 26Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari Full support 11WebView Android Full support YesChrome Android Full support 26Firefox Android Full support 44Opera Android Full support 43
Notes
Full support 43
Notes
Notes Promise-based version.
No support 37 — 43
Safari iOS Full support YesSamsung Internet Android Full support 6.0
signalingstatechange eventChrome Full support 28Edge Full support 15Firefox Full support 22IE No support NoOpera Full support 43Safari Full support 11WebView Android Full support YesChrome Android Full support 28Firefox Android Full support 44Opera Android Full support 43Safari iOS No support NoSamsung Internet Android Full support 6.0
track eventChrome Full support 64Edge Full support YesFirefox Full support 22IE No support NoOpera Full support 43Safari Full support 11WebView Android Full support 64Chrome Android Full support 64Firefox Android Full support 44Opera Android Full support 43Safari iOS ? Samsung Internet Android Full support 6.0

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.
See implementation notes.
See implementation notes.
Requires a vendor prefix or different name for use.
Requires a vendor prefix or different name for use.

참고