Cómo hace tiempo que no escribo ningún tip, aquí va uno de AIR. Se trata de cómo detectar si disponemos de conexión de internet al ejecutar una aplicación AIR.
Esta comprobación es muy sencilla ya que disponemos de una clase de actionscript especifica para realizarla. La clase URLMonitor.
Al instanciar la clase URLMonitor de deberemos pasarle como parámetro un URLRequest con una dirección web válida con la que realizar la comprobación de la conexión a internet.
Código :
var _urlForRequest:URLRequest = new URLRequest("http://www.cristalab.com"); var _monitor:URLMonitor = new URLMonitor(_urlForRequest);
Una vez iniciado el URLMonitor, este lanzará un evento cada vez que detecte cambios de conexión.
Código :
_monitor.addEventListener(StatusEvent.STATUS, onStatusChange); _monitor.start();
La disponibilidad de conexión a internet quedará guardada en un parámetro booleano dentro del objeto que podremos recuperar y actuar en consecuencia.
Código :
function onStatusChange(e:StatusEvent):void { if(_monitor.available == true) { //loquesea } else { //loquesea } }
Este evento se disparará siempre que haya un cambio en el estado de la conexión, con lo que podremos detectar si perdimos la conexión (o la recuperamos) durante la ejecución de nuestra aplicación, y evitar así posibles fallos de funcionamiento.
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por tecmobeto el 06 de Diciembre de 2009
gracias
He visto aplicaciones en el mundo .NET que son conscientes del status de la conexión a Internet. Para no ir lejos, MSN Messenger se desconecta inmediatamente cuando deja de estar disponible la red. Ellos se enteran a través de un API de Windows que indica cuando estas cosas pasan a través de un evento.
Aquí, veo que usas una URL y una clase que "monitorea" el status de la URL. ¿Eso significa que está haciendo ping a esa URL cada X tiempo? ¿Cada cuanto tiempo? Si no hace ping cada X tiempo ¿Cómo dispara el evento? ¿Hay más datos de cómo se comporta? Es un tema que siempre me interesó.
Por Raxiro el 06 de Diciembre de 2009
Se entendió? es parecido a lo que pregunta F.
Saludos!
Por Raxiro el 06 de Diciembre de 2009
hace tiempo lo había visto. Pero esta mejor explicado y en español.
Saludos
Freddie :
El URLMonitor hace un ping a esa url unicamente después de haber llamado a start() y cuando cambia el estado de la red (accediendo a la información del sistema).
Pero tambien hay la posibilidad de ir lanzando pings continuamente de forma periódica con la propiedad pollInterval, indicándole el número de milisegundos en el que quieres repetir la comprobación. Esta propiedad por defecto es 0 con lo que no se envía ninguno.
Código :
Raxiro-blog :
Si estas en una red local puedes hacerlo igualmente con:
Código :
pero en este caso el URLMonitor no detecta los cambios de red, tendrías que ir haciendo pings continuamente con pollInterval para detectar cambios en el estado del servidor.
Zguillez :
Código :
pero en este caso el URLMonitor no detecta los cambios de red, tendrías que ir haciendo pings continuamente con pollInterval para detectar cambios en el estado del servidor.
Por Raxiro el 07 de Diciembre de 2009
Freddie :
Localhost devuelve true o false dependiendo de si tienes conectado o desconectado Apache
Zguillez :
Freddie :
Localhost devuelve true o false dependiendo de si tienes conectado o desconectado Apache
Igual, no serviría localhost para saber si hay internet en la red local, sólo para saber si apache está corriendo en tu PC.
Interesante funcionamiento.
Por troyar el 11 de Diciembre de 2009
///////////////////////////
import flash.net.URLRequest;
import flash.events.StatusEvent;
var _urlForRequest:URLRequest=new URLRequest("http://www.cristalab.com");
var _monitor:URLMonitor=new URLMonitor(_urlForRequest);
_monitor.addEventListener(StatusEvent.STATUS, onStatusChange);
_monitor.start();
function onStatusChange(e:StatusEvent):void {
if (_monitor.available==true) {
//loquesea
} else {
//loquesea
}
}
/////////////////////////////////
Por troyar el 11 de Diciembre de 2009
Por troyar el 11 de Diciembre de 2009
Por Alejandro el 12 de Mayo de 2013