[TOC] ## 概述 webrtc的P2P穿透部分是由libjingle实现的. 步骤顺序大概是这样的: 1. 尝试直连. 2. 通过stun服务器进行穿透 3. 无法穿透则通过turn服务器中转. turn 包含了stun的功能. 所以只需要部署turn服务器即可 ## TURN 服务器 为了使大多数WebRTC应用程序正常运行,需要服务器来中继对等方之间的通信,因为客户端之间通常不可能建立直接套接字(除非它们位于同一本地网络上) ``` const iceConfiguration = { iceServers: [ { urls: 'turn:my-turn-server.mycompany.com:19403', username: 'optional-username', credentials: 'auth-token' } ] } const peerConnection = new RTCPeerConnection(iceConfiguration); ```