2016-01-21 4 views
1

Сценарий:WebRTC iceGatheringChanged с состоянием «полные» занимает слишком много времени, чтобы срабатывать при использовании TURN (~ минут)

Я использую WebRTC (libjingle Google) на прошивку и PeerConnection является установкой с помощью сервера TURN и я «Я буду ждать, пока все кандидаты соберутся, прежде чем я отправлю их сверстнику (я использую SIP). Проблема в том, что, хотя все кандидаты собраны примерно через 1-3 секунды (я вижу это в журналах), обратный вызов iceGatheringChanged() не вызывается с состоянием GatheringComplete до тех пор, пока он не пройдет целую минуту!

Любая идея, почему это происходит?

После анализа трафика с использованием Google AppRTCDemo для iOS кажется, что для запуска GatheringComplete клиент должен уже получить кандидатов с удаленной стороны, и это потому, что, похоже, необходимо настроить TURN Allocations и добавить Разрешения на новое распределение, чтобы данные могли быть обменены с одноранговым узлом. Это так? Если да, то почему?

С наилучшими пожеланиями

ответ

0

Вы обмениваясь кандидатов как для партии в режиме реального времени? Вы правы, клиент TURN требует, чтобы кандидаты других сторон создали разрешение на сервере TURN, а также чтобы сделать контрольные списки для начала обработки ICE.