Где хранить потоки WebRTC при создании приложения React с сокращением
Я создаю приложение React.js, которое взаимодействует с Apis WebRTC для выполнения аудио/видеовызовов. Когда вызов успешно установлен, событие "onaddstream" запускается в экземпляре RTCPeerConnection, который содержит поток, который я, как разработчик, должен подключаться к видеоэлементу, чтобы отображать удаленное видео для пользователя.
Проблема, с которой я столкнулась, - это понять лучший способ получить поток из события в компонент React для рендеринга. Я успешно работаю, просто сбросив поток в мое состояние redux, но в этом другом ответе, создатель редукса Дэн Абрамов упомянул об этом:
[...] не использовать классы внутри состояния. Они не являются сериализуемыми, как есть. [...] Просто используйте простые объекты и массивы.
Почему мне интересно, если я не буду помещать эти потоки в состояние redux, есть ли лучший способ реагировать на событие onaddstream и получить компонент React для обновления без помещения потока в состояние redux?
Ответы
Ответ 1
По моему опыту такие вещи, как сокетные соединения и, как в вашем случае, вещи webrtc, хорошо подходят для проживания внутри своих собственных сред, написанных вручную для вашего приложения. Здесь вы можете подключить все управление соединением, активировать действия для взаимодействия с пользовательским интерфейсом и прослушивать действия, исходящие отсюда.
Еще одно решение - посмотреть на саунд-редукция, который, кажется, довольно хороший вариант для обработки сложных эффекты как сокеты и webrtc.