2016-06-14 2 views
0

Я использую libnice на родном сервере C++, который пытается сделать одноранговое соединение WebRTC с клиентским приложением веб-браузера. Используя libnice, сбор кандидатов успешный, а обмен предложения/ответа успешный. Затем он переходит к этапу проверки, который также является успешным. В Wireshark я вижу, что обмен запросами/ответами STUN также успешный.Как получить libnice, чтобы остановить проверку кандидата

Тем не менее, проверка кандидатов постоянно продолжается и продолжается, постоянно отправляя/получая успешные запросы/ответы STUN.

Это не очевидно для меня, и код примера не показывает, как фактически остановить проверки кандидатов, когда они преуспели. Я вызвал процедуру API: nice_agent_attach_recv() и зарегистрировал обратный вызов, но он, похоже, не срабатывает. И даже если бы это произошло, сигнатура обратного вызова не дает мне никакой информации о том, как обрабатывать какие-либо данные.

Вопрос: какую обработку следует выполнять в обратном вызове ice_agent_attach_recv()?

Спасибо, -Andres

ответ

0

Нет обработки в обратном вызове должно должно быть сделано. Вам нужно будет позвонить nice_agent_get_local_candidates(), а затем продолжить учетные данные и так далее. Существует a decent example here in the reference manual.

+0

Я вызываю nice_agent_get_local_candidates() в моем обратном вызове, который собирает кандидат. Почему он должен быть вызван в обратном вызове ice_agent_attach_recv()? Спасибо за ваш ответ. –

+0

В примере, который не находится в функции обратного вызова, 'nice_agent_get_local_candidates()' находится в строке кода сразу после вызова 'nice_agent_attach_recv()'. –

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