Отслеживание ошибки сетевого соединения в as3
У меня проблема с правильным определением, когда соединение НЕ было установлено при попытке подключиться к внешнему файлу. Это работает нормально, если у меня включен localhost (который является config.gateway1), но если я выключаю сервер, я получаю только ошибку:
"Ошибка открытия URL 'http://localhost/amfphp/gateway.php'"
Я попытался настроить try ловит как на соединение, так и на вызов. Я также настроил прослушиватель событий, который должен вызывать функцию onFailure (которая в этот момент просто отслеживает сбой). Кажется, ошибка возникает, когда я звоню, и она не работает... но я не могу указать, что происходит, когда происходит ошибка.
var gateway1:String = config.gateway1
var gateway2:String = config.gateway2
var connection:NetConnection = new NetConnection ;
connection.addEventListener(IOErrorEvent.IO_ERROR,onFailure);
try{
connection.connect(gateway1);
trace("It went in to the try of the connection.connect")
//trace(connection);
}
catch(error:IOError){
trace("It didn't work",error);
}
var responder:Responder = new Responder(onResult,onFault);//onResult and onFault can be any name
var array:Array = new Array(kioskNum,questionNum);
try
{connection.call("dataconnect.retrieveInfo",responder,array);
trace("It went in to the try of the connection.call");}
catch(error:IOError){
trace("It didn't work",error);}
//trace(gateway1);
2 ответа
Ошибка при загрузке WSDL может быть зафиксирована с помощью FaultEvent.FAULT
...
webService.addEventListener(FaultEvent.FAULT, onWsdlLoadError);
webService.loadWsdl(<wsdl>);
...
protected function onWsdlLoadError(event:FaultEvent):void {
trace("wsdl load error: " + event.fault);
}
Надеюсь это поможет.
Вам необходимо добавить прослушиватель событий для NetStatusEvent.NET_STATUS и проверить информацию:
connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
function netStatusHandler(event:NetStatusEvent):void {
switch (event.info.code) {
case "NetConnection.Connect.Failed":
//Do something on Failed
break;
case "NetConnection.Connect.Closed":
//Do something on Closed
break;
case "NetConnection.Call.Failed":
//Do something on Call.Failed
break;
}
}