diff --git a/bin/pomelo b/bin/pomelo index 512246d7c..f67ca9885 100755 --- a/bin/pomelo +++ b/bin/pomelo @@ -15,7 +15,7 @@ var fs = require('fs'), exec = require('child_process').exec, spawn = require('child_process').spawn, version = require('../package.json').version, - adminClient = require('pomelo-admin').adminClient, + adminClient = require('pomelo-admin-js').adminClient, constants = require('../lib/util/constants'), program = require('commander'); diff --git a/lib/application.js b/lib/application.js index f214a16ae..6dc485d46 100644 --- a/lib/application.js +++ b/lib/application.js @@ -94,7 +94,7 @@ Application.require = function(ph) { /** * Configure logger with {$base}/config/log4js.json - * + * * @param {Object} logger pomelo-logger instance without configuration * * @memberOf Application @@ -364,7 +364,7 @@ Application.beforeStopHook = function(fun) { utils.invokeCallback(cb, new Error('application has already start.')); return; } - + var self = this; appUtil.startByType(self, function() { appUtil.loadDefaultComponents(self); diff --git a/lib/common/manager/appManager.js b/lib/common/manager/appManager.js index 5749f3763..ea3204f38 100644 --- a/lib/common/manager/appManager.js +++ b/lib/common/manager/appManager.js @@ -63,7 +63,7 @@ manager.transaction = function(name, conditions, handlers, retry) { var flag = true; var times = retry; - + // do retry if failed util retry times async.whilst( function() { @@ -110,4 +110,4 @@ manager.transaction = function(name, conditions, handlers, retry) { }); } }); -}; \ No newline at end of file +}; diff --git a/lib/common/remote/backend/msgRemote.js b/lib/common/remote/backend/msgRemote.js index 2b61177ee..1d65c6985 100644 --- a/lib/common/remote/backend/msgRemote.js +++ b/lib/common/remote/backend/msgRemote.js @@ -86,9 +86,9 @@ Remote.prototype.forwardMessage2 = function(route, body, aesPassword, compressGz if(err) { return cb(err); } - + server.handle(msg, backendSession, function(err, resp, opts) { utils.invokeCallback(cb, err, resp, opts); }); }); -}; \ No newline at end of file +}; diff --git a/lib/common/remote/frontend/channelRemote.js b/lib/common/remote/frontend/channelRemote.js index 333475fa4..defa191df 100644 --- a/lib/common/remote/frontend/channelRemote.js +++ b/lib/common/remote/frontend/channelRemote.js @@ -29,7 +29,7 @@ Remote.prototype.pushMessage = function(route, msg, uids, opts, cb) { utils.invokeCallback(cb, new Error('can not send empty message.')); return; } - + var connector = this.app.components.__connector__; var sessionService = this.app.get('sessionService'); @@ -55,7 +55,7 @@ Remote.prototype.pushMessage = function(route, msg, uids, opts, cb) { * * @param {String} route route string * @param {Object} msg message - * @param {Boolean} opts broadcast options. + * @param {Boolean} opts broadcast options. * @param {Function} cb callback function */ Remote.prototype.broadcast = function(route, msg, opts, cb) { diff --git a/lib/common/service/channelService.js b/lib/common/service/channelService.js index 8969a3fde..11c7ed191 100644 --- a/lib/common/service/channelService.js +++ b/lib/common/service/channelService.js @@ -90,7 +90,7 @@ ChannelService.prototype.destroyChannel = function(name) { * @param {String} route message route * @param {Object} msg message that would be sent to client * @param {Array} uids the receiver info list, [{uid: userId, sid: frontendServerId}] - * @param {Object} opts user-defined push options, optional + * @param {Object} opts user-defined push options, optional * @param {Function} cb cb(err) * @memberOf ChannelService */ @@ -183,7 +183,7 @@ ChannelService.prototype.broadcast = function(stype, route, msg, opts, cb) { opts = {type: 'broadcast', userOptions: opts || {}}; - // for compatiblity + // for compatiblity opts.isBroadcast = true; if(opts.userOptions) { opts.binded = opts.userOptions.binded; @@ -424,7 +424,7 @@ var sendMessageByGroup = function(channelService, route, msg, groups, opts, cb) opts = {type: 'push', userOptions: opts || {}}; // for compatiblity opts.isPush = true; - + var sendMessage = function(sid) { return (function() { if(sid === app.serverId) { diff --git a/lib/common/service/handlerService.js b/lib/common/service/handlerService.js index 81351e621..189c861c4 100644 --- a/lib/common/service/handlerService.js +++ b/lib/common/service/handlerService.js @@ -135,4 +135,4 @@ var getResp = function(args) { } return r; -} \ No newline at end of file +} diff --git a/lib/common/service/sessionService.js b/lib/common/service/sessionService.js index c9ca795a7..2ba84ec20 100644 --- a/lib/common/service/sessionService.js +++ b/lib/common/service/sessionService.js @@ -32,9 +32,9 @@ module.exports = SessionService; /** * Create and return internal session. * - * @param {Integer} sid uniqe id for the internal session - * @param {String} frontendId frontend server in which the internal session is created - * @param {Object} socket the underlying socket would be held by the internal session + * @param {Integer} sid uniqe id for the internal session + * @param {String} frontendId frontend server in which the internal session is created + * @param {Object} socket the underlying socket would be held by the internal session * * @return {Session} * @@ -425,7 +425,7 @@ var send = function(service, session, msg) { * user id after the client passes the identification. * * Session is created in frontend server and should not be accessed in handler. - * There is a proxy class called BackendSession in backend servers and FrontendSession + * There is a proxy class called BackendSession in backend servers and FrontendSession * in frontend servers. */ var Session = function(sid, frontendId, socket, service) { diff --git a/lib/components/protobuf.js b/lib/components/protobuf.js index 47a4ca0c4..278a8d7ac 100644 --- a/lib/components/protobuf.js +++ b/lib/components/protobuf.js @@ -16,7 +16,7 @@ var Component = function(app, opts) { this.serverProtos = {}; this.clientProtos = {}; this.version = ""; - + var env = app.get(Constants.RESERVED.ENV); var originServerPath = path.join(app.getBase(), Constants.FILEPATH.SERVER_PROTOS); var presentServerPath = path.join(Constants.FILEPATH.CONFIG_DIR, env, path.basename(Constants.FILEPATH.SERVER_PROTOS)); diff --git a/lib/components/proxy.js b/lib/components/proxy.js index e1e78a2dd..839722c0d 100644 --- a/lib/components/proxy.js +++ b/lib/components/proxy.js @@ -71,7 +71,7 @@ pro.start = function(cb) { if(!!rpcBefores) { this.client.before(rpcBefores); - } + } if(!!rpcAfters) { this.client.after(rpcAfters); } diff --git a/lib/components/pushScheduler.js b/lib/components/pushScheduler.js index f9a147a41..5855702aa 100644 --- a/lib/components/pushScheduler.js +++ b/lib/components/pushScheduler.js @@ -112,7 +112,7 @@ var getScheduler = function(pushSchedulerComp, app, opts) { }); pushSchedulerComp.isSelectable = true; pushSchedulerComp.selector = opts.selector; - return res; + return res; } return scheduler; diff --git a/lib/connectors/common/coder.js b/lib/connectors/common/coder.js index 06794cd3d..8bbbffd03 100644 --- a/lib/connectors/common/coder.js +++ b/lib/connectors/common/coder.js @@ -85,4 +85,4 @@ var encodeBody = function(server, route, msgBody) { module.exports = { encode: encode, decode: decode -}; \ No newline at end of file +}; diff --git a/lib/connectors/hybrid/tcpsocket.js b/lib/connectors/hybrid/tcpsocket.js index bfcc9eb73..49dfe1e9c 100644 --- a/lib/connectors/hybrid/tcpsocket.js +++ b/lib/connectors/hybrid/tcpsocket.js @@ -72,8 +72,8 @@ Socket.prototype.close = function() { if(!!this.closeMethod && this.closeMethod === 'end') { this._socket.end(); } else { - try { - this._socket.destroy(); + try { + this._socket.destroy(); } catch (e) { logger.error('socket close with destroy error: %j', e.stack); } diff --git a/lib/connectors/hybridsocket.js b/lib/connectors/hybridsocket.js index b6d81964a..87cbdaa1a 100644 --- a/lib/connectors/hybridsocket.js +++ b/lib/connectors/hybridsocket.js @@ -137,4 +137,4 @@ Socket.prototype.disconnect = function() { this.state = ST_CLOSED; this.socket.emit('close'); this.socket.close(); -}; \ No newline at end of file +}; diff --git a/lib/connectors/mqttconnector.js b/lib/connectors/mqttconnector.js index b5c26e4fc..e13cb3b7d 100644 --- a/lib/connectors/mqttconnector.js +++ b/lib/connectors/mqttconnector.js @@ -37,22 +37,22 @@ Connector.prototype.start = function(cb) { client.on('error', function(err) { client.stream.destroy(); }); - + client.on('close', function() { client.stream.destroy(); }); - + client.on('disconnect', function(packet) { client.stream.destroy(); }); - + if(self.opts.disconnectOnTimeout) { var timeout = self.opts.timeout * 1000 || constants.TIME.DEFAULT_MQTT_HEARTBEAT_TIMEOUT; client.stream.setTimeout(timeout,function() { client.emit('close'); }); } - + client.on('connect', function(packet) { client.connack({returnCode: 0}); var mqttsocket = new MQTTSocket(curId++, client, self.adaptor); @@ -96,4 +96,4 @@ Connector.prototype.encode = function(reqId, route, msgBody) { Connector.prototype.close = function() { this.mqttServer.close(); -}; \ No newline at end of file +}; diff --git a/lib/connectors/udpsocket.js b/lib/connectors/udpsocket.js index 769f5ae8c..74a473010 100644 --- a/lib/connectors/udpsocket.js +++ b/lib/connectors/udpsocket.js @@ -12,7 +12,7 @@ var ST_CLOSED = 3; var Socket = function(id, socket, peer) { EventEmitter.call(this); - + this.id = id; this.socket = socket; this.peer = peer; @@ -97,4 +97,4 @@ Socket.prototype.disconnect = function() { } this.state = ST_CLOSED; this.emit('disconnect', 'the connection is disconnected.'); -}; \ No newline at end of file +}; diff --git a/lib/filters/handler/toobusy.js b/lib/filters/handler/toobusy.js index 8b243c72b..265f96faf 100644 --- a/lib/filters/handler/toobusy.js +++ b/lib/filters/handler/toobusy.js @@ -30,4 +30,4 @@ Filter.prototype.before = function(msg, session, next) { } else { next(); } -}; \ No newline at end of file +}; diff --git a/lib/filters/rpc/rpcLog.js b/lib/filters/rpc/rpcLog.js index 15b85e3d0..c7020174b 100644 --- a/lib/filters/rpc/rpcLog.js +++ b/lib/filters/rpc/rpcLog.js @@ -10,7 +10,7 @@ module.exports = function() { }; var Filter = function () { -}; +}; Filter.prototype.name = 'rpcLog'; diff --git a/lib/master/master.js b/lib/master/master.js index d5005d518..e808ab051 100644 --- a/lib/master/master.js +++ b/lib/master/master.js @@ -2,7 +2,7 @@ var starter = require('./starter'); var logger = require('pomelo-logger').getLogger('pomelo', __filename); var crashLogger = require('pomelo-logger').getLogger('crash-log', __filename); var adminLogger = require('pomelo-logger').getLogger('admin-log', __filename); -var admin = require('pomelo-admin'); +var admin = require('pomelo-admin-js'); var util = require('util'); var utils = require('../util/utils'); var moduleUtil = require('../util/moduleUtil'); @@ -14,7 +14,7 @@ var Server = function(app, opts) { this.registered = {}; this.modules = []; opts = opts || {}; - + opts.port = this.masterInfo.port; opts.env = this.app.get(Constants.RESERVED.ENV); this.closeWatcher = opts.closeWatcher; @@ -45,14 +45,14 @@ Server.prototype.start = function(cb) { utils.invokeCallback(cb); }); }); - + this.masterConsole.on('error', function(err) { if(!!err) { logger.error('masterConsole encounters with error: ' + err.stack); return; } }); - + this.masterConsole.on('reconnect', function(info){ self.app.addServers([info]); }); diff --git a/lib/master/starter.js b/lib/master/starter.js index f23bc3647..7055b03e8 100644 --- a/lib/master/starter.js +++ b/lib/master/starter.js @@ -70,7 +70,11 @@ starter.run = function(app, server, cb) { } starter.localrun(process.execPath, null, options, cb); } else { - cmd = util.format('cd "%s" && "%s"', app.getBase(), process.execPath); + if(os.platform() === Constants.PLATFORM.WIN) { + cmd = util.format('cd /d "%s" && "%s"', app.getBase(), process.execPath); + } else { + cmd = util.format('cd "%s" && "%s"', app.getBase(), process.execPath); + } var arg = server.args; if (arg !== undefined) { cmd += arg; diff --git a/lib/master/watchdog.js b/lib/master/watchdog.js index 29ee46e8b..5415ccff4 100644 --- a/lib/master/watchdog.js +++ b/lib/master/watchdog.js @@ -126,4 +126,4 @@ Watchdog.prototype.notify = function(msg) { requests[id] = 0; moduleRequest(this, id); } -}; \ No newline at end of file +}; diff --git a/lib/modules/console.js b/lib/modules/console.js index 19a13aa51..5a3eb45bc 100644 --- a/lib/modules/console.js +++ b/lib/modules/console.js @@ -9,6 +9,7 @@ var utils = require('../util/utils'); var Constants = require('../util/constants'); var starter = require('../master/starter'); var exec = require('child_process').exec; +var os = require('os'); module.exports = function(opts) { return new Module(opts); @@ -194,7 +195,7 @@ var restart = function(app, agent, msg, cb) { for(var key in servers) { serverIds.push(key); } - } + } var count = serverIds.length; var latch = countDownLatch.createCountDownLatch(count, {timeout: Constants.TIME.TIME_WAIT_COUNTDOWN}, function() { if(!successFlag) { @@ -290,7 +291,7 @@ var checkPort = function(server, cb) { var p = server.port || server.clientPort; var host = server.host; - var cmd = 'netstat -tln | grep '; + var cmd = os.type() === 'Windows_NT' ? 'netstat -ano | findStr :' : 'netstat -tln | grep '; if (!utils.isLocal(host)) { cmd = 'ssh ' + host + ' ' + cmd; } @@ -325,6 +326,10 @@ var parseArgs = function(msg, info, cb) { info[key] = 1; } rs[pairs[0]] = pairs[1]; + //Extended memory limit + if(pairs[1] === '--max-old-space-size'){ + rs[pairs[0]]+= '='+pairs[2]; + } } return rs; }; @@ -461,4 +466,4 @@ var ClusterInfo = { host: 0, port: 0, clusterCount: 0 -}; \ No newline at end of file +}; diff --git a/lib/modules/masterwatcher.js b/lib/modules/masterwatcher.js index a59a79843..19acdfea4 100644 --- a/lib/modules/masterwatcher.js +++ b/lib/modules/masterwatcher.js @@ -107,4 +107,4 @@ var masterMethods = { 'unsubscribe': unsubscribe, 'query': query, 'record': record -}; \ No newline at end of file +}; diff --git a/lib/monitor/monitor.js b/lib/monitor/monitor.js index 6d178e2b3..ffc48b1b7 100644 --- a/lib/monitor/monitor.js +++ b/lib/monitor/monitor.js @@ -3,7 +3,7 @@ * Load and start monitor client. */ var logger = require('pomelo-logger').getLogger('pomelo', __filename); -var admin = require('pomelo-admin'); +var admin = require('pomelo-admin-js'); var moduleUtil = require('../util/moduleUtil'); var utils = require('../util/utils'); var Constants = require('../util/constants'); @@ -81,4 +81,4 @@ Monitor.prototype.reconnect = function(masterInfo) { logger.info('restart modules for server : %j finish.', self.app.serverId); }); }); -}; \ No newline at end of file +}; diff --git a/lib/server/server.js b/lib/server/server.js index f88ebadba..bba9bd0c5 100644 --- a/lib/server/server.js +++ b/lib/server/server.js @@ -76,7 +76,7 @@ pro.stop = function() { * * @param {Object} msg request message * @param {Object} session session object - * @param {Callback} callback function + * @param {Callback} callback function */ pro.globalHandle = function(msg, session, cb) { if(this.state !== ST_STARTED) { @@ -289,7 +289,7 @@ var handleError = function(isGlobal, server, err, msg, session, resp, opts, cb) if(handler.length === 5) { handler(err, msg, resp, session, cb); } else { - handler(err, msg, resp, session, opts, cb); + handler(err, msg, resp, session, opts, cb); } } }; @@ -412,21 +412,21 @@ var scheduleCrons = function(server, crons) { logger.error('cron action is error format: %j', cronInfo); continue; } - + var cron = action.split('.')[0]; var job = action.split('.')[1]; var handler = handlers[cron]; - + if(!handler) { logger.error('could not find cron: %j', cronInfo); continue; } - + if(typeof handler[job] !== 'function') { logger.error('could not find cron job: %j, %s', cronInfo, job); continue; } - + var id = schedule.scheduleJob(time, handler[job].bind(handler)); server.jobs[jobId] = id; } diff --git a/lib/util/moduleUtil.js b/lib/util/moduleUtil.js index 65c6510dd..7101bcbfe 100644 --- a/lib/util/moduleUtil.js +++ b/lib/util/moduleUtil.js @@ -1,5 +1,5 @@ var os = require('os'); -var admin = require('pomelo-admin'); +var admin = require('pomelo-admin-js'); var utils = require('./utils'); var Constants = require('./constants'); var pathUtil = require('./pathUtil'); @@ -22,7 +22,7 @@ pro.loadModules = function(self, consoleService) { for(var m in _modules){ modules.push(_modules[m]); } - + var record, moduleId, module; for(var i=0, l=modules.length; i