reactjs - 在 react/redux 应用程序中管理 webRTC 状态(流)
问题描述
我正在开发一个带有反应的视频聊天应用程序,并使用 redux 进行状态管理。目前在 webRTC 中使用 agora。随着 webRTC 相关事件的发生(流被添加、删除等等),状态应该被更新并发送到所有需要/依赖它的组件。
然而,单独的 redux 并不意味着这个。正如这个 SO question和Dan Abramov(制造商本人)所讨论的那样,redux 并不适用于类,因此存储 webRTC 流是一个坏主意。
我想我应该手动存储和管理自己的 webRTC 状态(某处,idk where
尽管如此,我还是很难理解如何自己存储 webRTC 流:
- 我相信使用上下文 API 将导致我的所有组件在每次流更改/添加/删除/发生任何其他相关事件时呈现。
- 在 react 函数组件上管理 webRTC 状态将很快成为一场噩梦,因为我必须在顶层进行,并且几乎在任何地方都将其传递下去。
- redux-saga 被认为是一个潜在的救星,但我对此有点陌生,我不清楚这有什么帮助,因为它似乎主要处理副作用和异步调用。我需要一个并行商店(AFAI 了解)
底线:
有人可以给出一个好的和详细的解释,或者给我一个很好的代码库吗?
解决方案
我在 redux-saga 文档中找到了一个很好的基本示例代码,它管理来自 websocket 的事件——这与来自 webRTC 客户端的事件没有太大区别。
推荐阅读
- java - window.history(angularJS 代码)不存储在 IE 11 中访问的所有历史页面
- laravel-5 - Laravel 的最新更新
- android - 如何查看 RunTimeException 发生的位置?
- jquery - Jquery试图将值传递给输入框但是
- java-8 - 使用 Apache commons 电子邮件在我的硬盘上发送带有附件的邮件
- sql - 使用 OPTION (RECOMPILE) 与加入表的成本
- codeigniter - Codeigniter 3.1.9 MY_Form_validation 不起作用
- powershell - 将 PowerShell 数组转换为整数
- laravel - 在 laravel 上使用图表时出现错误
- javascript - 如何在 php 中检索 javascript 变量并将其添加到数据库中