Adobe AIR,URLRequest和本地端口

时间:2011-02-28 03:21:13

标签: actionscript-3 sockets streaming air nat-traversal

我正在考虑使用Adobe AIR编写应用程序,但我想先了解一下该平台是否可行。 (主要是Flash和AIR新手)

我想要做的是提前知道URLRequest将使用的本地端口。如果可能的话,我想保持连接打开并继续使用相同的套接字。

我基本上要完成的是提前进行一些NAT-Traversal和端口协商。一旦我同时对客户端和服务器进行协商,我希望它们能够以点对点的方式连接并基本上使用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框架以相同的方式从套接字流式传输。

想法?思考?谢谢!

1 个答案:

答案 0 :(得分:0)

即使您设法猜测AIR将在您的设备上使用哪个端口,它也不会非常有用,因为您的NAT很可能会将其转换为另一个值 IF < / strong>您的AIR设备具有专用IP地址。

如果您的AIR服务器具有公共IP地址,则不会发生此问题。通常,您可以将服务器的NAT /路由器配置为按原样转发流量。来自WAN的端口扫描将很快告诉您使用了哪个端口。

如果您想“劫持”由AIR本身创建的出站连接,那么您可能会尝试让它与您已实施的特殊服务器对等点联系,该对等方将从该流量转发流量。不简单,但可能。基本上你会收集服务器在NAT中打孔的漏洞。