//Server for check whether or not internet is available.
CHECK_NETWORK_SERVER: ["server1", "server2", "server3"]
//Check Internet is available or not.
isNetAvailable:function (availableCallback, notAvailableCallback, timeout) {
var context = this;
if(!context.isMDMOpened) {
return;
}
var aCallback = availableCallback || function () {
context.logInfo("Default callback: Internet is available!");
};
var nCallback = notAvailableCallback || function () {
context.logError("Default callback: Internet is not available!");
};
var mTimeout = timeout || context.CHECK_NETWORK_TIME;
if (!Array.isArray(context.CHECK_NETWORK_SERVER) && context.CHECK_NETWORK_SERVER.length <= 0) {
nCallback();
return;
}
var checked = context.CHECK_NETWORK_SERVER.slice(0, 3);
var length = checked.length;
check();
function check() {
var server = checked.shift();
context.logInfo("checking server:" + server);
if (!server) {
nCallback();
return;
}
var req = new XMLHttpRequest({mozSystem: true, mozAnon: true, mozBackgroundRequest: true});
req.timeout = mTimeout / length - 1000;
req.onerror = function () {
check();
};
req.onreadystatechange = function () {
context.logInfo(this.readyState + "==>" + this.status);
if (this.readyState == 4) {
if (this.status == 200) {
context.logInfo("Internet is available!");
checked.length = 0;
aCallback();
} else {
check();
}
}
};
var url = "http://" + server + "/?" + (+new Date());
context.logInfo("check:" + url);
req.open("GET", url, true);
try {
req.send(null);
} catch (error) {
check();
}
}
}