diff --git a/lib/client/socket.js b/lib/client/socket.js index c679575c..7bf35907 100644 --- a/lib/client/socket.js +++ b/lib/client/socket.js @@ -38,44 +38,11 @@ var CloudCmd, Util, DOM, io; } function addListener(name, func) { - var listeners, obj; - - if (Util.isString(name)) { - listeners = AllListeners[name]; - - if (!listeners) - listeners = AllListeners[name] = []; - - listeners.push(func); - - if (func && socket) - socket.on(name, func); - - } else if (Util.isObject(name)) { - obj = name; - - for (name in obj) { - func = obj[name]; - addListener(name, func); - } - } + CloudFunc.addListener(name, func, AllListeners, socket); } function removeListener(name, func) { - var i, n, listeners; - - if (socket) - socket.removeListener(name, func); - - listeners = AllListeners[name]; - - if (listeners) { - n = listeners.length; - - for (i = 0; i < n; i++) - if (listeners[i] === func) - listeners[i] = null; - } + CloudFunc.removeListener(name, func, AllListeners, socket); } function send(data) { diff --git a/lib/cloudfunc.js b/lib/cloudfunc.js index 09e274d6..5c52b402 100644 --- a/lib/cloudfunc.js +++ b/lib/cloudfunc.js @@ -46,6 +46,47 @@ var Util; this.PANEL_LEFT = 'js-left'; this.PANEL_RIGHT = 'js-right'; + this.addListener = function(name, func, allListeners, socket) { + var listeners, obj; + + if (Util.isString(name)) { + listeners = allListeners[name]; + + if (!listeners) + listeners = allListeners[name] = []; + + listeners.push(func); + + if (func && socket) + socket.on(name, func); + + } else if (Util.isObject(name)) { + obj = name; + + for (name in obj) { + func = obj[name]; + CloudFunc.addListener(name, func, allListeners, socket); + } + } + }; + + this.removeListener = function(name, func, allListeners, socket) { + var i, n, listeners; + + if (socket) + socket.removeListener(name, func); + + listeners = allListeners[name]; + + if (listeners) { + n = listeners.length; + + for (i = 0; i < n; i++) + if (listeners[i] === func) + listeners[i] = null; + } + }; + this.getJoinURL = function(names) { var url, isContain, regExp = new RegExp(',', 'g'),