【问题标题】:managing webRTC state (streams) in a react/redux app在 react/redux 应用程序中管理 webRTC 状态(流)
【发布时间】:2020-12-26 12:47:04
【问题描述】:

我正在开发一个带有 react 的视频聊天应用程序,并使用 redux 进行状态管理。目前在 webRTC 中使用 agora。随着 webRTC 相关事件的发生(流被添加、删除等等),状态应该被更新并发送到所有需要/依赖它的组件。

然而,redux 本身并不意味着这个。正如 this SO questionDan Abramov (the maker himself) 中所讨论的,redux 不适用于类,因此存储 webRTC 流是一个坏主意。

我想我应该手动存储和管理自己的 webRTC 状态(某处,idk where

不过,我还是很难理解如何自己存储 webRTC 流:

  1. 我相信使用上下文 API 会导致我的所有组件在每次流更改/添加/删除/发生任何其他相关事件时呈现。
  2. 在 react 函数组件上管理 webRTC 状态将很快成为一场噩梦,因为我必须在顶层进行,并且几乎在任何地方都将其传递下去。
  3. redux-saga 被认为是一个潜在的救星,但我对此有点陌生,我不清楚这有什么帮助,因为它似乎主要处理副作用和异步调用。我需要一个并行商店(AFAI 了解)

底线:

有人可以给我一个好的和详细的解释,或者给我一个代码库,代码可以很好地做到这一点吗?

【问题讨论】:

    标签: reactjs typescript redux webrtc agora-web-sdk-ng


    【解决方案1】:

    我在 redux-saga 文档中找到了一个很好的基本示例代码,它管理来自 websocket 的事件 - 这与来自 webRTC 客户端的事件没有太大区别。

    https://redux-saga.js.org/docs/advanced/Channels.html

    【讨论】:

    • 您是如何避免在商店中保存流分类的?
    猜你喜欢
    • 2017-08-28
    • 1970-01-01
    • 2019-09-12
    • 2020-05-13
    • 2016-03-12
    • 1970-01-01
    • 2018-09-04
    • 2016-08-10
    • 1970-01-01
    相关资源
    最近更新 更多