diff --git a/lib/client/dom.js b/lib/client/dom.js index 28765a79..b45f40b2 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -361,6 +361,30 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; }); }; + this.loadSocket = function(callback) { + CloudCmd.getConfig(function(config) { + var load = DOM.load, + urlLocal = '/socket.io/socket.io.js', + urlCDN = 'https://cdn.socket.io/socket.io-1.0.0.js', + online = config.online && navigator.onLine, + + funcON = function() { + load.js(urlCDN, { + onload : callback, + onerror : funcOFF + }); + }, + + funcOFF = function() { + load.js(urlLocal, { + onload : callback + }); + }; + + Util.exec.if(online, funcON, funcOFF); + }); + }; + /** function loads css and js of Menu * @param callback */ diff --git a/lib/client/socket.js b/lib/client/socket.js index 03ddfa30..6aef6bba 100644 --- a/lib/client/socket.js +++ b/lib/client/socket.js @@ -10,14 +10,10 @@ var CloudCmd, Util, DOM, CloudFunc, io; var Socket = Util.exec.bind(Util), AllListeners = {}, socket, - exec = Util.exec, log = Util.log.bind(Util), CONNECTED = 'socket connected\n', - DISCONNECTED = 'socket disconnected\n', - - ERROR_MSG = 'could not connect to socket.io\n'+ - 'npm i socket.io'; + DISCONNECTED = 'socket disconnected\n'; Socket.on = addListener; Socket.addListener = addListener; @@ -29,35 +25,11 @@ var CloudCmd, Util, DOM, CloudFunc, io; Socket.DISCONNECTED = DISCONNECTED; function init(callback) { - var loadSocket = function(isRemote) { - var urlLocal = '/socket.io/socket.io.js', - urlCDN = 'https://cdn.socket.io/socket.io-1.0.0.js', - url = isRemote ? urlCDN : urlLocal, - - onerror = function() { - log(ERROR_MSG); - - if (isRemote) - loadSocket(callback); - }, - - onload = function() { - exec(callback); - - if (!socket) - connect(); - }; - - DOM.load.js(url, { - onerror : exec.with(onerror, callback), - onload : exec.with(onload, callback) - }); - }; - - CloudCmd.getConfig(function(config) { - var isOnline = config.online; + DOM.loadSocket(function() { + Util.exec(callback); - loadSocket(isOnline); + if (!socket) + connect(); }); }