RTCPeerConnectionは、オブジェクトを変更するときに呼び出される特定のメソッド(setLocalDescription、addIceCandidateなど)を持つオブジェクトです。これらのメソッドは、WebRTC接続の反対側から受信したシグナリングに基づいて呼び出されます(オファーまたは氷の候補を受け取ったときなど)。RTCPeerConnectionオブジェクトをReact/Reduxアプリケーションに保存する場所はどこですか?
したがって、このオブジェクトは、最初の近似で突然変異を制御することはできず、単純なコピーを作成することはできませんので、reduxストアには適していないようです。これによりRTCPeerConnectionの以前のwebRTCセッションが削除されるためです。
Reactを使用するWebRTCアプリケーションでは、おそらく異なるコンポーネントがRTCPeerConnectionオブジェクトにアクセスする必要があります(たとえば、アプリケーションのトップレベルコンポーネントのマウント時にインスタンス化されていますが、 RTCPeerConnectionのメソッドを呼び出して、受け取ったwebRTCオファーへの回答を作成するか、深くネストされたコンポーネントが呼び出しを開始する必要があります)。唯一の解決策は、オブジェクトをコンポーネントツリーの下に小道具として渡すことですか?このような複雑なオブジェクトでreduxを使用する方法はありませんか?
UPDATE:socket.ioを処理するためにミドルウェアを使用することに関する以下の回答を考慮して、元の質問を書き直してください。最終的にいくつかの方法を受け取る必要があるディスパッチコールを処理します。setRemoteDescription
のようなメソッド呼び出しを行う元のRTCPeerConnectionへの参照はどうですか?
本当に面白い答えを、私もsocket.ioを使用していますが、それは間接的にしか処理しているのWebRTCのRTCPeerConnectionオブジェクトについての質問に答えるに適用されているため内部的に "メッセージ"の受信。 – evianpring
ああ...私の答えはあなたの質問にはまだ有効で関連していますが、私はそれを十分に明確に述べていないかもしれません。私がアイデアを説明するために擬似コードを一緒に投げることができるかどうかを見てください。 – markerikson