Где хранить потоки WebRTC при создании приложения React с сокращением

Я создаю приложение React.js, которое взаимодействует с Apis WebRTC для выполнения аудио/видеовызовов. Когда вызов успешно установлен, событие "onaddstream" запускается в экземпляре RTCPeerConnection, который содержит поток, который я, как разработчик, должен подключаться к видеоэлементу, чтобы отображать удаленное видео для пользователя.

Проблема, с которой я столкнулась, - это понять лучший способ получить поток из события в компонент React для рендеринга. Я успешно работаю, просто сбросив поток в мое состояние redux, но в этом другом ответе, создатель редукса Дэн Абрамов упомянул об этом:

[...] не использовать классы внутри состояния. Они не являются сериализуемыми, как есть. [...] Просто используйте простые объекты и массивы.

Почему мне интересно, если я не буду помещать эти потоки в состояние redux, есть ли лучший способ реагировать на событие onaddstream и получить компонент React для обновления без помещения потока в состояние redux?

Ответ 1

По моему опыту такие вещи, как сокетные соединения и, как в вашем случае, вещи webrtc, хорошо подходят для проживания внутри своих собственных сред, написанных вручную для вашего приложения. Здесь вы можете подключить все управление соединением, активировать действия для взаимодействия с пользовательским интерфейсом и прослушивать действия, исходящие отсюда.

Еще одно решение - посмотреть на саунд-редукция, который, кажется, довольно хороший вариант для обработки сложных эффекты как сокеты и webrtc.