2011-06-17 13 views
3

Adob​​e Cirrusは、ピアリングからピアへのデータ転送のためのいくつかのオプションを提供しています:ディレイドルーティング、オブジェクトレプリケーション、マルチキャスト。Adob​​e Cirrus:既知のIDを持つ単一のピアにデータチャンクを配信する最も速い方法

私はちょうど1つの特定のピアにデータを送信したいだけです。他のピアがそのデータを送信中に見ることができます。

Directed Routing(明らかな答え)を使った私の実験はうまくいっていません。すべてのsendto ...メソッドは失敗し、NetGroup.postは同じネットグループで正常に動作します。私は信頼性のために直接接続を使用することに懸念しています。

誰かが1対1のメッセージング戦略(1対多ではない)を実装していますが、接続されていないピア間でメッセージを送信できますか(Directed Routing)、またはこの問題を解決しましたか?

私は、さまざまな回避策を検討していますが、私はこれらのNetGroup方法ということは非常に当惑しています:sendToNearestsendToNeighbour & sendToAllNeighboursだけの明らかな理由もなく、失敗するように見えます。

答えて

1

これはあなたの問題です.NetGroupはシングルピアの「送信」用に作られていません。 「NetGroupクラスのインスタンスはRTMFPグループのメンバシップを表します」と書かれているので、これらの送信メソッドはすべてプロトコルネイバーに関連しています(RTMFPがどのように動作するかについて詳しくは読む必要があります。

唯一実行可能なオプションは、直接接続を使用することです。NetGroupを使用する場合と同じように信頼性があります。唯一の「信頼性」の問題は、ピアへの接続にあります。より堅牢なものを望むなら、第三者のサーバが必要ですが、私の経験上、これは必要ありません。クライアントには受信ストリームをリッスンし、もう一方のピアにはピアIDを使用して接続する必要があります(自分のサーバー実装を通じてピアIDを知っているはずです)。接続が確立されたら、netConnection.send('whatever');を実行するだけです。

+0

は私が直接接続がグループのすべてのメンバーの間では不可能だったという印象の下にあった、そしてそれはネットグループを使用してルーティング監督ピアのようにペア間のメッセージングを解決しました。 – Tom

+0

「グループのすべてのメンバー」とはどういう意味ですか?あなたはただひとりの人にメッセージを伝えたいですか?直接ルーティングは、あなたのプロトコル「隣人」に情報を送信するために作られていますが、私が読んだことから、その人があなたの隣人でなければ、直接情報を送ることはできません。 –

+0

申し訳ありませんが、私はそれが100%明確でないかもしれないと思いました。私が理解したところでは、グループ内のすべての可能なペアのピア間で直接接続することはできませんが、そのようなピア間のメッセージングは​​可能です。 – Tom

2

netGroup.sendToNearestが最速である必要がありますが、これを行うにはもう少し作業が必要です。メッセージを処理するには、NetGroup.SendTo.Notifyイベントをリッスンする必要があります。しかし、あなたはメッセージを受け取るかもしれないが、最終的な宛先ではない可能性があります...言い換えれば、あなたはP2Pネットワークの中間者であり、メッセージを次の最も近いものに転送する必要がありますノード。したがって、NetGroup.SendTo.Notifyイベントを処理する場合は、最終的な宛先であるかどうかを確認する必要があります。これを行うには、event.info.fromLocalをチェックします。それが本当なら、あなたは最終的な目的地であり、あなたはそれで何でもしなければなりません。それが間違っている場合、がメッセージを前方に転送する際に積極的な役割を果たさなければなりません。メッセージを転送するには、最終的な宛先のIDが何であるかを知る必要があります。そのため、実際に元のメッセージにそのIDを含める必要があります。あなたは

私が理解から
if (!event.info.fromLocal) 
    netGroup.sendToNearest(event.info.message, event.info.message.destination) 

は、指定配線は基本的に投稿と同じ速度でなければなりません...何かのようにメッセージを転送することができますが、それは、不要なデータが皆ときに行くとのネットワークを詰まらせるしません彼らは実際にそれを必要としません。また、UDP経由でルーティングが行われ、送信時と同じ落とし穴があるはずです。配信は保証されません。 RTMFPでの配信を保証する唯一の方法は、オブジェクト複製を使用することです。

ここで指定配線上のいくつかの詳細情報です:http://www.flashrealtime.com/directed-routing-explained-flash-p2p/

関連する問題