我正在考虑使用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框架以相同的方式从套接字流式传输。
想法?思考?谢谢!
答案 0 :(得分:0)
即使您设法猜测AIR将在您的设备上使用哪个端口,它也不会非常有用,因为您的NAT很可能会将其转换为另一个值 IF < / strong>您的AIR设备具有专用IP地址。
如果您的AIR服务器具有公共IP地址,则不会发生此问题。通常,您可以将服务器的NAT /路由器配置为按原样转发流量。来自WAN的端口扫描将很快告诉您使用了哪个端口。
如果您想“劫持”由AIR本身创建的出站连接,那么您可能会尝试让它与您已实施的特殊服务器对等点联系,该对等方将从该流量转发流量。不简单,但可能。基本上你会收集服务器在NAT中打孔的漏洞。