2

私はAdobeAIRでアプリを作成することを検討していますが、これがプラットフォームで実現可能かどうかを最初に把握したいと思いました。(ほとんどの場合、FlashとAIRは初めてです)

私がやりたいのは、aが使用するローカルポートを事前に知っておくことです。URLRequestできれば、接続を開いたままにして、同じソケットを使い続けたいと思います。

私が基本的に達成しようとしているのは、事前にNATトラバーサルとポートネゴシエーションを行うことです。クライアントとサーバーの両方をネゴシエートしたら、次のサンプルのように、接続し、基本的にピアツーピアの方法でHTTPを使用してメディアをストリーミングするようにします。

var s = new air.Sound(); 
var url = "http://www.example.com/sounds/bigSound.mp3"; 
var req = new air.URLRequest(url); 
var context = new air.SoundLoaderContext(8000, true); 
s.load(req, context); 
s.play();

問題は、使用する予定のポートに関する情報をAIRから取得できない限り、これが発生しないことです。サーバーへの独自のSocket接続を作成して使用することは問題ありませんが、Soundフレームワークを活用してソケットから同じ方法でストリーミングする方法が必要です。

アイデア?考え?ありがとう!

4

1 に答える 1

0

デバイスでAIRが使用するポートを推測できたとしても、AIRデバイスにプライベートIPがある場合、 NATがそれを別の値に変換する可能性がかなり高いため、あまり役に立ちません。住所。

AIRサーバーにパブリックIPアドレスがある場合、この問題は発生しません。ほとんどの場合、トラフィックをそのまま転送するようにサーバーのNAT/ルーターを構成できます。WANからのポートスキャンにより、使用されているポートがすぐにわかります。

AIR自体によって作成されたアウトバウンド接続を「ハイジャック」したい場合は、実装した特別なサーバーピアに接続して、トラフィックを転送するようにすることができます。単純ではありませんが、可能です。基本的に、サーバーによってNATにパンチされた穴を収集します。

于 2011-04-13T19:38:45.533 に答える