2016-02-20 2 views
1

У меня есть конкретная проблема, когда я использую WebRTC (голос и видео).
Я хочу поддерживать связь/голосовые/видеопотоки между веб-страницами на веб-сайте. Я думал, что могу использовать общих веб-работников для работы в фоновом режиме?Сохранение потоков/связей webrtc между веб-страницами

Любое руководство будет замечательным. Я смотрел на другие сообщения, но они довольно старые и задавались вопросом, есть ли у кого-нибудь какая-либо, более подробная информация или способы решить эту проблему?

ОБНОВЛЕНИЕ: Совместное использование веб-работников - это неправильный способ решения этой проблемы. Работники службы - это путь вперед для поддержки после завершения веб-страницы.

+0

Вы пробовали просто использовать сгенерированный поток URL? Просто распространяйте его между страницами любыми способами. –

+0

Я незнаком с этим. Позволит ли я сохранить живой вызов webrtc при переводе между страницами веб-сайта? Без необходимости всплывающего окна? – hipkiss

ответ

2

Сохранение связи webRTC в живом режиме между загрузками страниц кажется редким прецедентом. Обычно вы запускаете вызов и остаетесь на одной странице. Я предполагаю, что это могло бы иметь смысл, если бы вы хотели внедрить поддержку клиентов, такую ​​как виджет webRTC на сайте, и иметь этот виджет после пользователя через навигацию по страницам под одним доменом.

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

Существует ограничение IceRestart, которое может помочь. По-видимому, вы можете сохранить информацию SDP в локальном хранилище, повторно использовать согласованный SDP, а затем вызвать IceRestart для быстрого повторного подключения.

Как описано в разделе 3, назначенный ДВС кандидат пара обмениваются во время процедуры SDP предложение/ответ, который поддерживается на JavaScript. JavaScript может сохранить информацию SDP на сервере приложений или в локальном хранилище браузера. Когда произойдет перезагрузка страницы , будет перезагружен новый JavaScript, который будет создать новый PeerConnection и получить сохраненную информацию SDP , включая предыдущую кандидатную пару. Затем JavaScript может запросить предыдущий ресурс, отправив setLocalDescription(), , который включает в себя сохраненную информацию SDP. Вместо перезапуска процедуры ICE без дополнительных подсказок действий новый JavaScript SHALL отправит updateIce(), который указывает, что он произошел из-за перезагрузки страницы. Если агент ICE затем может выделить предыдущий ресурс для нового JavaScript, он будет использовать предыдущую номинальную парную партию для первой проверки соединения, и если она завершится успешно , агент ICE сохранит ее как выделенную. Теперь агент ICE может отправлять , используя эту пару кандидатов, даже если он работает в Режим обычной номинации.

https://bugs.chromium.org/p/webrtc/issues/detail?id=979

http://tools.ietf.org/html/draft-li-rtcweb-ice-page-reload-02

+0

Интересно. Большое спасибо за этот метод. Хотя это не плохой пользовательский опыт? И как это будет работать для парня на другом конце звонка, потому что он не сможет увидеть только черный ящик, где идет видео? Также я использую проприетарное программное обеспечение и не знаю, как он будет реагировать на этот метод?Кроме того, любые мысли о веб-мастерах? – hipkiss

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