2017-02-09 3 views
1

Привет я в настоящее время работает видео чат с использованием WebRTC и у меня возникает ошибка, когда я пытаюсь использовать PeerConnection.updateIce(config) это говоритНе удалось выполнить «updateIce» на «RTCPeerConnection»: Не удалось обновить ICE агента с заданной конфигурацией

Uncaught DOMException: Не удалось выполнить 'updateIce' в 'RTCPeerConnection': не удалось обновить агент ICE с заданной конфигурацией. по адресу: 1: 4

var ICE_config= { 
    'iceServers': [ 
    { 
     'url': 'stun:stun.l.google.com:19302' 
    }, 
    { 
     'url': 'turn:192.158.29.39:3478?transport=udp', 
     'credential': 'JZEOEt2V3Qb0y27GRntt2u2PAYA=', 
     'username': '28224511:1379330808' 
    }, 
    { 
     'url': 'turn:192.158.29.39:3478?transport=tcp', 
     'credential': 'JZEOEt2V3Qb0y27GRntt2u2PAYA=', 
     'username': '28224511:1379330808' 
    } 
    ] 
} 
var peerConnection = new RTCPeerConnection(ICE_config); 

Я обновляю мои iceServers

var new_ICE_config= { 
    'iceServers': [ 
    { 
     'url': 'stun:stun.l.google.com:19302' 
    },... and so on 
    ] 
} 

peerConnection.updateIce(iceServers); 

Почему происходит эта ошибка (с) я не передать правильный параметр для этой функции?

ответ

2

метод updateIce никогда не был должным образом реализован в Chrome, см. here для одной из ошибок об этом. Почему вы считаете, что вам нужно позвонить updateIce?

Возможно, вы захотите создать свою peerconnection с серверами TURN, которые работают, и что вы работаете вместо «turn»: 192.158.29.39: 3478? Transport = udp '(и другой). Эти учетные данные первоначально исходят от this html5rocks tutorial и истекли в сентябре 2013 года

+0

Причина, по которой я использую этот метод, заключается лишь в том, чтобы обновить ледяные серверы (серверы) вместо повторного установления нового однорангового соединения, что потребует много времени, потому что У меня есть функция повторного подключения видео или обновления, посмотрите здесь https://gyazo.com/e9c81fd0779aad22a19e37659b9abbe1, а ледяной сервер (ы), который я использую, имеет ограничение в 20 сек. (TTL), и предыдущий сервер льда истек. I также попробуйте PeerConnection.setConfiguration(), но он не выглядит как функция – Beginner

+0

setConfiguration доступен только в Chrome 58 и далее, см. связанную проблему. До тех пор вам понадобится более длинный TTL для учетных данных. –

+0

, так что это означает, что нет решения для этого, кроме поиска ледяного сервера (ов) с более длинным TTL. хорошо, потому что 'updateIce' никогда не был правильно реализован, а' setConfiguration' все еще находится на экспериментальном – Beginner

Смежные вопросы