2015-12-07 4 views
12

私は、WebRTC apisと対話してオーディオ/ビデオ呼び出しを行うReact.jsアプリケーションを構築しています。呼び出しが成功すると、RTCPeerConnectionインスタンスで 'onaddstream'イベントが発生します。このイベントには、開発者がビデオ要素に接続してユーザーにリモートビデオを表示すると想定されるストリームが含まれます。Rexを使ってReactアプリケーションをビルドするときのWebRTCストリームを格納する場所

問題イベントからストリームをReactコンポーネントに渡してレンダリングする最善の方法を理解しています。私はそれが正常に私のReduxの状態にストリームをダンプして作業していますが、in this other answerは、Reduxのダン・アブラモフ監督の作成者は、これを述べた:

[...]状態の内部クラスを使用しないでください。そのまま継承可能ではありません。 [...]単純なオブジェクトと配列を使用してください。

これらのストリームをredux状態にしないと、「onaddstream」イベントに反応してリアクションコンポーネントを取得してストリームを還元状態?

+5

同様に、アプリケーション構造内で、 'RTCPeerConnection'や' MediaStream'のインスタンスのように、非直列化可能な状態オブジェクトをReduxストアに置かないのですか? – ruffrey

答えて

6

私の経験では、ソケット接続のようなもので、あなたの場合のように、私たちのものはあなたのアプリケーション用に手作りのミドルウェアの中に住むのに適しています。ここですべての接続管理を接続し、アクションを実行してUIと通信し、ここからのアクションを聞くことができます。

もう1つの解決策は、redux sagaを見ることです。これは、ソケットとwebrtcとして複雑なエフェクトを処理するための素晴らしいオプションのようです。

+0

'redux-saga 'の使い方を教えてください。同様の問題を解決するために探しています。https://github.com/yelouafi/redux-saga/issues/635 – Tauren

+1

@Taurenここでの主なアイデアは、佐賀のコードでsocket/webRTC接続を設定することです後でレデューサーと最終的にコンポーネントで処理されるアクションを介して更新をプッシュします。問題からあなたの仕事については、私はビデオストリーミングやwebRTCの経験がないので、問題について何も言えませんでした。 –

+1

FYI、 '' 'redux-observable'''は、ジェネレータの代わりに観測可能なアプローチを好むならば、sagaの良い選択肢になります。 https://redux-observable.js.org/ – JacopKane

関連する問題