--- title: RTCPeerConnection slug: Web/API/RTCPeerConnection browser-compat: api.RTCPeerConnection translation_of: Web/API/RTCPeerConnection ---
L'interface RTCPeerConnection
représente une connexion WebRTC entre un ordinateur local et un pair distant. Elle fournit des méthodes pour se connecter à un pair distant, entretenir et surveiller la connexion et fermer la connexion dès qu'elle n'est plus nécessaire.
{{InheritanceDiagram}}
RTCPeerConnection()
RTCPeerConnection
qui représente la connexion entre l'appareil local et le pair distant.generateCertificate()
RTCCertificate
une fois généré.Cette interface hérite également des propriétés de EventTarget
.
canTrickleIceCandidates
{{ReadOnlyInline}}connectionState
{{ReadOnlyInline}}new
, connecting
, connected
, disconnected
, failed
ou closed
.
currentLocalDescription
{{ReadOnlyInline}}RTCSessionDescription
qui décrit la partie locale de la connexion qui a été négociée avec succès le plus récemment depuis la dernière fois où cette connexion RTCPeerConnection
a terminé de négocier et s'est connectée à un pair distant. Cet objet inclut également une liste des candidats ICE qui peuvent avoir déjà été générés par l'agent ICE depuis que l'offre ou la réponse représentée par la description a été instanciée en premier lieu.currentRemoteDescription
{{ReadOnlyInline}}RTCSessionDescription
qui décrit la connexion pour le pair distant pour la connexion qui a été négociée avec succès le plus récemment depuis la dernière fois où cette connexion RTCPeerConnection
a terminé de négocier et s'est connectée à un pair distant. Cet objet inclut également une liste des candidats ICE qui peuvent avoir déjà été générés par l'agent ICE depuis que l'offre ou la réponse représentée par la description a été instanciée en premier lieu.iceConnectionState
{{ReadOnlyInline}}RTCPeerConnection
. La chaîne de caractères peut être l'une de celles-ci : new
, checking
, connected
, completed
, failed
, disconnected
ou closed
.iceGatheringState
{{ReadOnlyInline}}new
, gathering
ou complete
.localDescription
{{ReadOnlyInline}}RTCSessionDescription
qui décrit la session pour la partie locale de la connexion. Si la session n'a pas encore été initialisée, renvoie null
.peerIdentity
{{ReadOnlyInline}}RTCIdentityAssertion
contenant une chaîne de caractères identifiant le pair distant. Une fois que la promesse a été résolue avec succès, l'identité obtenue est celle du pair cible et ne changera pas pour la durée de la connexion.pendingLocalDescription
{{ReadOnlyInline}}RTCSessionDescription
qui décrit un changement de configuration en attente pour la partie locale de la connexion. Cela ne décrit pas la connexion dans son état actuel mais telle qu'elle pourrait être dans un futur proche.pendingRemoteDescription
{{ReadOnlyInline}}RTCSessionDescription
qui décrit un changement de configuration en attente pour la partie distante de la connexion. Cela ne décrit pas la connexion dans son état actuel mais telle qu'elle pourrait être dans un futur proche.remoteDescription
{{ReadOnlyInline}}RTCSessionDescription
qui décrit la session, y compris la configuration, les informations sur le média pour la partie distante de la connexion. Si la session n'est pas encore initialisée, renvoie null
.sctp
{{ReadOnlyInline}}RTCSctpTransport
qui décrit la couche de transport SCTP sur laquelle les données SCTP sont envoyées et reçues. Si SCTP n'a pas été négocié, renvoie null
.signalingState
{{ReadOnlyInline}}stable
, have-local-offer
, have-remote-offer
, have-local-pranswer
ou have-remote-pranswer
.Cette interface hérite des gestionnaires d'évènements de EventTarget
.
onconnectionstatechange
ondatachannel
RTCDataChannelEvent
est envoyé lorsqu'un canal RTCDataChannel
est ajouté à la connexion par le pair distant qui a appelé createDataChannel()
.onicecandidate
onicecandidateerror
oniceconnectionstatechange
onicegatheringstatechange
onnegotiationneeded
onsignalingstatechange
signalingState
du pair de la connexion change. Cela peut avoir lieu suite à un appel à setLocalDescription()
ou à setRemoteDescription()
.ontrack
RTCTrackEvent
. Cet évènement est envoyé lorsqu'un nouvel objet entrant MediaStreamTrack
a été créé et associé avec un objet RTCRtpReceiver
ajouté à l'ensemble des destinataires de la connexion.onaddstream
{{Obsolete_Inline}}onremovestream
{{Obsolete_Inline}}Cette interface hérite également des méthodes de EventTarget
.
addIceCandidate()
RTCPeerConnection
qui décrit l'état à l'extrémité distante de la connexionaddTrack()
MediaStreamTrack
à l'ensemble des pistes qui seront transmises au pair distant.addTransceiver()
RTCRtpTransceiver
et l'ajoute à l'ensemble des émetteurs-récepteurs associés à la connexion. Chaque émetteur-récepteur représente un flux bidirectionnel associé à un récepteur RTCRtpSender
et à un émetteur RTCRtpReceiver
.close()
createAnswer()
createDataChannel()
createOffer()
MediaStreamTrack
déjà attachés à la session WebRTC, des codecs, des options prises en charge par le navigateur ainsi que sur les éventuels candidats déjà collectés par l'agent ICE afin de pouvoir envoyer ces informations via le canal de signalement à un pair potentiel pour demander une connexion ou mettre à jour la configuration d'une connexion existante.getConfiguration()
RTCConfiguration
qui indique la configuration courante de la connexion.getIdentityAssertion()
signalingState
ne vaut pas closed
.getReceivers()
RTCRtpReceiver
dont chacun représente un récepteur RTP.getSenders()
RTCRtpSender
dont chacun représente un émetteur RTP dont le rôle est de transmettre les données d'une piste.getStats()
MediaStreamTrack
indiquée.getTransceivers()
RTCRtpTransceiver
utilisés afin d'envoyer et de recevoir des données sur la connexion.removeTrack()
RTCRtpSender
correspondant de la liste des récepteurs telle que fournie par getSenders()
. Si la piste est déjà arrêtée ou si elle n'est pas dans la liste des émetteurs de la connexion, cette méthode n'a pas d'effet.restartIce()
setConfiguration()
RTCConfiguration
passé en argument. Cela permet de modifier les serveurs ICE utilisés par la connexion ainsi que les règles de transport utilisées.setIdentityProvider()
setLocalDescription()
setRemoteDescription()
addStream()
{{Obsolete_Inline}}MediaStream
comme source audio ou vidéo locale. La méthode addTrack()
devrait être utilisée à la place pour chaque piste qu'on souhaite envoyer au pair distant.createDTMFSender()
{{Obsolete_Inline}}RTCDTMFSender
associé à une piste MediaStreamTrack
spécifique et qui est capable d'envoyer des signaux téléphoniques DTMF via la connexion.getStreamById()
{{Obsolete_Inline}}MediaStream
ayant l'identifiant indiqué qui est associé à l'extrémité locale ou distante de la connexion. Cette propriété a été remplacée par les méthodes getSenders()
et getReceivers()
.removeStream()
{{Obsolete_Inline}}MediaStream
qui est une source audio ou vidéo locale. Cette méthode est obsolète, on doit privilégier removeTrack()
à la place.On pourra intercepter ces évènements grâce à addEventListener()
ou en affectant un gestionnaire d'évènement sur la propriété onnomEvenement
de cette interface.
connectionstatechange
RTCPeerConnection
évolue. Également disponible via la propriété de gestion d'évènement onconnectionstatechange
.datachannel
RTCDataChannel
à la connexion. Également disponible via la propriété de gestion d'évènement ondatachannel
.icecandidate
onicecandidate
.icecandidateerror
onicecandidateerror
.iceconnectionstatechange
oniceconnectionstatechange
.icegatheringstatechange
iceGatheringState
, évolue. Cela indique si la négociation ICE n'a pas encore commencé (new
), a commencé la collecte des candidats (gathering
) ou si elle est terminée (complete
). Également disponible via la propriété de gestion d'évènement onicegatheringstatechange
.negotiationneeded
onnegotiationneeded
.signalingstatechange
onsignalingstatechange
.track
RTCRtpReceiver
faisant partie de la connexion. Également disponible via la propriété de gestion d'évènement ontrack
.addstream
{{Obsolete_Inline}}MediaStream
a été ajouté à la connexion. Plutôt que d'écouter cet évènement obsolète, on privilégiera les évènements track
. Un tel évènement est envoyé pour chaque piste MediaStreamTrack
ajoutée à la connexion. Également disponible via la propriété onaddstream
.removestream
{{Obsolete_Inline}}MediaStream
est retiré de la connexion. Plutôt que d'écouter cet évènement obsolète, on privilégiera les évènements removetrack
pour chaque flux. Également disponible via la propriété onremovestream
.{{Specifications}}
{{Compat}}