Apache flex flex amf请求不再在Windows的空中发送
我有一个Flex应用程序,可以在浏览器中运行,也可以作为独立应用程序与AIR一起运行。在我们的应用程序中,您可以下载在服务器端生成的包含报表的zip文件。这个zip文件可能相当大(多GB),下载需要一段时间。基本上,我们从客户端执行HTTP POST:Apache flex flex amf请求不再在Windows的空中发送,apache-flex,air,Apache Flex,Air,我有一个Flex应用程序,可以在浏览器中运行,也可以作为独立应用程序与AIR一起运行。在我们的应用程序中,您可以下载在服务器端生成的包含报表的zip文件。这个zip文件可能相当大(多GB),下载需要一段时间。基本上,我们从客户端执行HTTP POST: m_file = new FileReference(); m_file.download( request, filename ); 另一方面,我们每15秒从客户端向服务器发送一次ping,以确保服务器仍然存在。服务器用其名称响应ping。当
m_file = new FileReference();
m_file.download( request, filename );
另一方面,我们每15秒从客户端向服务器发送一次ping,以确保服务器仍然存在。服务器用其名称响应ping。当我们在30秒内没有收到响应时,我们会向用户显示一条消息,表明服务器已关闭
现在,实际的问题是,当我们下载报告时,对服务器的ping请求永远不会被发送。奇怪的是,这种情况只发生在Windows上的AdobeAIR中。这在Windows上的Firefox上不是问题。Mac OS X上的AIR也没有问题
我在ping操作周围放置了一些日志来显示它:
[trace] 1: Mon Jul 16 16:00:20 GMT+0200 2012
[trace] return : 1: Mon Jul 16 16:00:20 GMT+0200 2012
[trace] 2: Mon Jul 16 16:00:35 GMT+0200 2012
[trace] return : 2: Mon Jul 16 16:00:35 GMT+0200 2012
[trace] 3: Mon Jul 16 16:00:50 GMT+0200 2012
[trace] return : 3: Mon Jul 16 16:00:50 GMT+0200 2012
[trace] 4: Mon Jul 16 16:01:05 GMT+0200 2012
[trace] 5: Mon Jul 16 16:01:20 GMT+0200 2012
[trace] 6: Mon Jul 16 16:01:35 GMT+0200 2012
[trace] 7: Mon Jul 16 16:01:50 GMT+0200 2012
[trace] fault 4: Mon Jul 16 16:02:05 GMT+0200 2012
[trace] fault 5: Mon Jul 16 16:02:05 GMT+0200 2012
[trace] fault 6: Mon Jul 16 16:02:05 GMT+0200 2012
[trace] fault 7: Mon Jul 16 16:02:05 GMT+0200 2012
[trace] 8: Mon Jul 16 16:02:05 GMT+0200 2012
[trace] fault 8: Mon Jul 16 16:02:20 GMT+0200 2012
[trace] 9: Mon Jul 16 16:02:21 GMT+0200 2012
Player session terminated
[AIR Debug Launcher]: Process finished with exit code 1
您可以看到操作1、2和3运行良好,并立即返回。此时,我们开始下载报告。请注意操作4如何不会立即返回。15秒后,操作5开始,然后是6和7,每间隔15秒。
然后,就在1分钟之后,操作4突然返回到故障处理程序,这与在该1分钟内启动的所有其他请求一样
请注意,在后台,只要AIR应用程序保持运行,HTTP POST就会保持运行(选中)。ping请求本身不会出现在charles中,如果我启用了它,我也不会在BlazeDS调试日志中看到它们。这就像AIR应用程序从未尝试在服务器上执行ping请求一样
有没有人知道可能出了什么问题?还有什么我可以检查/调试的吗
我使用的是Flex SDK 4.5和Adobe AIR 3.3,这可能是由于Windows上的HTTP连接限制。我发现这篇文章描述了一个类似的问题:事实上,修改Windows注册表以允许更多的同时连接使问题得以解决。