--- 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.
onconnectionstatechangeondatachannelRTCDataChannelEvent est envoyé lorsqu'un canal RTCDataChannel est ajouté à la connexion par le pair distant qui a appelé createDataChannel().onicecandidateonicecandidateerroroniceconnectionstatechangeonicegatheringstatechangeonnegotiationneededonsignalingstatechangesignalingState du pair de la connexion change. Cela peut avoir lieu suite à un appel à setLocalDescription() ou à setRemoteDescription().ontrackRTCTrackEvent. 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.
connectionstatechangeRTCPeerConnection évolue. Également disponible via la propriété de gestion d'évènement onconnectionstatechange.datachannelRTCDataChannel à la connexion. Également disponible via la propriété de gestion d'évènement ondatachannel.icecandidateonicecandidate.icecandidateerroronicecandidateerror.iceconnectionstatechangeoniceconnectionstatechange.icegatheringstatechangeiceGatheringState, é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.negotiationneededonnegotiationneeded.signalingstatechangeonsignalingstatechange.trackRTCRtpReceiver 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}}