Для работы большинства приложений WebRTC требуется сервер для ретрансляции трафика между одноранговыми узлами, поскольку прямой сокет часто невозможен между клиентами (если они не находятся в одной локальной сети). Обычный способ решить эту проблему - использовать сервер TURN. Этот термин расшифровывается как Traversal Using Relay NAT, и это протокол для ретрансляции сетевого трафика.
В настоящее время существует несколько вариантов серверов TURN, доступных в Интернете, как в виде автономных приложений (например, проект COTURN с открытым исходным кодом), так и в виде облачных сервисов.
Когда у вас есть доступный в сети сервер TURN, все, что вам нужно, это правильная RTCConfiguration
чтобы ваше клиентское приложение RTCConfiguration
его использовать. Следующий фрагмент кода иллюстрирует пример конфигурации для RTCPeerConnection
где сервер TURN имеет имя хоста my-turn-server.mycompany.com
и работает на порту 19403
. Объект конфигурации также поддерживает свойства имени username
и credentials
для защиты доступа к серверу. Они необходимы при подключении к серверу TURN.
const iceConfiguration = {
iceServers: [
{
urls: 'turn:my-turn-server.mycompany.com:19403',
username: 'optional-username',
credentials: 'auth-token'
}
]
}
const peerConnection = new RTCPeerConnection(iceConfiguration);