Для сервера TURN, поддерживающего STUN, нужно ли указывать URL-адреса STUN и TURN в клиенте?

Если у меня есть сервер TURN, который также может действовать как STUN, должны ли мои URL-адреса в моем клиенте выглядеть так?

myPeerConnection = new RTCPeerConnection({
  iceServers: [
    {
      urls: "turn:example.org"
    }
  ]
});

или вот так?

myPeerConnection = new RTCPeerConnection({
  iceServers: [
    {
      urls: "stun:example.org"
    },
    {
      urls: "turn:example.org"
    }
  ]
});

Я хочу, чтобы функция TURN использовалась только при необходимости, а не для каждого соединения.

Спасибо!


person jipson    schedule 30.07.2020    source источник
comment
это поведение ICE и TURN по умолчанию, оно используется в крайнем случае.   -  person Philipp Hancke    schedule 31.07.2020
comment
@PhilippHancke Спасибо за ответ. Значит, по твоему предложению мне нужен второй образец? А WebRTC справится с правильным приоритетом?   -  person jipson    schedule 01.08.2020
comment
да. На самом деле вы можете сделать это сами на webrtc.github.io/samples/ src/content/peerconnection/trickle-ice — с действительными учетными данными кандидат srflx будет собран, когда есть только сервер очереди.   -  person Philipp Hancke    schedule 02.08.2020


Ответы (1)


Можно написать как второй вариант. Он попытается подключиться к stun-серверу и вернуться к серверу Turn, если метод stun не сработает.

person Dirk V    schedule 30.07.2020