Сохранение видеопотока WebRTC во время навигации по сайту - PullRequest
0 голосов
/ 06 ноября 2019

Я ищу лучший способ сохранить видео поток WebRTC + элементы управления потоком (повесить трубку, отключение звука и т. Д.) Загруженными и активными, даже если пользователь переходит на другую подстраницу через меню навигации. Я подумал о следующем способе, однако я не знаю, является ли это наиболее практичным или есть ли лучшее решение для этого в настоящее время: я просто сделал бы обертку с меню навигации и поместил бы iFrame туда, где в настоящее время находится содержимое,Сам видеопоток будет идти в самой строке меню (это боковая панель, которая достаточно широка, чтобы сделать что-то подобное), когда пользователь нажимает на элемент меню, iFrame src заменяется новым URL-адресом. Это правильный способ сделать это? Если это так, то, поскольку я до сих пор не использовал iFrames, у меня есть еще несколько проблем:

  1. Есть ли какие-либо недостатки, связанные с функциями браузера при использовании iFrame? Например, я знаю, что Chrome просит вас добавить несколько функций в атрибут allow iFrame, например, при использовании камеры, микрофона или местоположения пользователя. Есть ли что-то, что я абсолютно не могу сделать в iFrames?
  2. Делит ли iFrames сеанс (PHP) и файлы cookie с «основной» оболочкой, или это отдельные сеансы?
  3. И, вероятно, моя самая большая проблема: Как JavaScript-коды оболочки и iFrames могут взаимодействовать друг с другом? Например, как я могу отправить сигнал зависания в видеопоток в оболочке из iFrame?

Спасибо за любые подсказки!

1 Ответ

1 голос
/ 07 ноября 2019

Iframes могут работать.

Есть ли какие-либо недостатки, связанные с функциями браузера при использовании iFrame?

Основная проблема заключается в том, что вы действительно не получаете контроль надпредставление страницы, пока загружается этот iframe. Например, пользователи могут видеть короткий момент чистого белого цвета, когда предыдущая страница срывается и заменяется.

Есть ли что-то, чего я абсолютно не могу сделать в iFrames?

Iframes довольно гибки. Просто имейте в виду, что у них есть свой собственный контекст JavaScript, поэтому вам нужно написать некоторый дополнительный код, чтобы перетасовывать данные туда-сюда.

Делают ли iFrames сеанс (PHP) и файлы cookie с "main "wrapper

Да

Как могут JavaScript-коды оболочки и iFrames взаимодействовать друг с другом?

Вы можете на самом делеполучить доступ к объекту Document для iframe из внешнего iframe. (Конечно, при условии, что они имеют одно и то же происхождение.)

const iframe = document.querySlector('iframe');
iframe.contentDocument.querySelector('body').whateveryouwant

Вероятно, лучший способ - использовать API postMessage. Это позволяет отправлять данные туда и обратно по мере необходимости, в приятной изолированной форме.

https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...