Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用redux构建React应用程序时在何处存储WebRTC流_Javascript_Html_Reactjs_Webrtc_Redux - Fatal编程技术网

Javascript 使用redux构建React应用程序时在何处存储WebRTC流

Javascript 使用redux构建React应用程序时在何处存储WebRTC流,javascript,html,reactjs,webrtc,redux,Javascript,Html,Reactjs,Webrtc,Redux,我正在构建一个React.js应用程序,它与WebRTC API交互以进行音频/视频调用。成功建立调用后,将在RTPeerConnection实例上触发一个“onaddstream”事件,其中包含作为开发人员应该连接到视频元素以向用户显示远程视频的流 我遇到的问题是理解将流从事件获取到React组件以进行渲染的最佳方法。通过将流转储到我的redux状态,我成功地实现了它,但是redux的创建者Dan Abramov提到: […]不要在州内使用类。它们不能按原样序列化。[…]只需使用普通对象和数组

我正在构建一个React.js应用程序,它与WebRTC API交互以进行音频/视频调用。成功建立调用后,将在RTPeerConnection实例上触发一个“onaddstream”事件,其中包含作为开发人员应该连接到视频元素以向用户显示远程视频的流

我遇到的问题是理解将流从事件获取到React组件以进行渲染的最佳方法。通过将流转储到我的redux状态,我成功地实现了它,但是redux的创建者Dan Abramov提到:

[…]不要在州内使用类。它们不能按原样序列化。[…]只需使用普通对象和数组


这让我想知道,如果我不应该将这些流置于redux状态,是否有更好的方法来响应“onaddstream”事件并让react组件更新而不将流置于redux状态?

根据我的经验,像套接字连接和webrtc之类的事情,非常适合生活在自己为您的应用程序手工编写的中间件中。您可以在此处连接所有连接管理,启动操作以与UI通信,并侦听来自此处的操作


另一个解决方案是查看,这似乎是处理套接字和webrtc等复杂效果的一个不错的选择。

类似地,在应用程序结构中,您将不可序列化的状态对象放在哪里,例如
rtpeerconnection
MediaStream
,如果不是在Redux商店?你能详细说明一下使用
Redux saga
会有什么帮助吗?我希望解决一个类似的问题,并在那里发布了一个问题:@Tauren这里的主要想法是在saga的代码中设置socket/webRTC连接,并通过稍后使用减缩器和组件处理的操作推动更新。至于你在这个问题上的任务,我没有视频流和webRTC方面的任何经验,因此不能就此发表任何意见。仅供参考,
redux observable
是saga的一个不错的替代方案,如果你更喜欢observable方法而不是生成器@JacopKane我最终使用了
redux saga
,但我现在正在认真考虑使用
redux observable
。现在我已经做了一段时间了,我认为利用RXJ和可观测数据可以简化事情。@Tauren我只用了几天的时间就对这两种数据进行了实验。两者都有一定的学习曲线,对于传奇来说,这是一个很好的例子。对于可观察的,它显然是Rx。Rx一开始有点吓人,但比开始变得更有趣,你可以认为它是可观测的下划线。