2011-03-24 55 views
0

我们有一个应用程序,其中flex侧的按钮单击重新启动服务器并使客户端注销。一旦注销后,如果用户登录它会给出错误,因为服务器没有按时发布。在我们的场景中,服务器需要时间来重启,因为这些东西(如备份)。如果用户尝试登录,我希望向用户通知网络服务器状态。无论如何flex中获取服务器的状态吗?

是否有任何方法可以监视Flex端的服务器状态。或者,请问JavaScript会帮助您找到服务器是否启动?

另外我尝试使用外部接口重定向到html页面,但我不确定如何在服务器变为活动状态时再次自动将其重定向到swf文件。服务器停机时间未知(可能是2或5或10分钟)

那么最好的办法是什么。任何帮助将不胜感激。

回答

1

使用URLLoader您可以尝试在服务器上下载文件并侦听ioError或httpStatus。

private var testLoader:URLLoader; 
private var testRequest:URLRequest; 

... 

testRequest = new URLRequest("http://server/testFile"); 
testLoader = new URLLoader(request); 
testLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onStatus); 

private function onStatus(HTTPStatusEvent:event):void 
{ 
    //test the status, if the server is up, reconnect, else... 
    testLoader.load(testRequest); 
} 
+0

感谢您的回复。但它会与https协同工作吗? – Saravana 2011-03-25 06:52:01

+0

由于服务器已关闭,因此身份验证被终止,因此您不需要进行此测试的https。 – Kodiak 2011-03-25 10:52:50

0

有趣的问题。当你的意思是重启时,你的意思只是像Apache这样的特定服务,或者像服务器的实际重启?我问,因为这意味着不同的情况。我不确定你在做什么,但我会假设你正在重新启动服务器。

这里的一个问题是客户端注销,这是我们不想要的。我会做的是有第二个服务器,它的唯一目的是身份验证和其他服务器的状态。这是一个'中间人'的方法,此服务器不会将您注销,但所有呼叫都会重定向到其他服务器。

从Flex的角度来看,你可以让它调用'中间人'来查看状态。根据您使用的技术(轮询vs推送),您可以获取所需的数据并向用户显示状态。

+0

其实我们有两种情况,但首先,我们停止我们的jboss服务器,做一些数据库备份,重新启动数据库服务,我们再次启动jboss server.so,当它遇到停机时间..我希望客户通知关于停机时间并重新连接到同一个网站服务器恢复。在AIR中没有任何接口flex提供像urlmonitor ..或者任何套接字侦听器都没有? – Saravana 2011-03-25 05:54:44