Skip to content

Commit

Permalink
upgrade to 2.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
fantasyni committed Jan 19, 2017
2 parents 9b88f6f + 0fd7686 commit ad2a700
Show file tree
Hide file tree
Showing 9 changed files with 347 additions and 87 deletions.
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@
* Demon <[email protected]> <weibo:@demon0925> <github:demon0925>
* numbcoder <[email protected]> <twitter: @numbcoder> <weibo: @Seekr> <github: numbcoder>
* halfblood <[email protected]> <twitter: @halfblo97338394> <weibo: @衣兜里的东西> <github: halfblood369>
* fantasyni <[email protected]> <github:fantasyni>
46 changes: 46 additions & 0 deletions lib/common/remote/backend/msgRemote.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,52 @@ Remote.prototype.forwardMessage = function(msg, session, cb) {
logger.debug('backend server [%s] handle message: %j', this.app.serverId, msg);

server.handle(msg, backendSession, function(err, resp, opts) {
// cb && cb(err, resp, opts);
utils.invokeCallback(cb, err, resp, opts);
});
};

Remote.prototype.forwardMessage2 = function(route, body, aesPassword, compressGzip, session, cb) {
var server = this.app.components.__server__;
var sessionService = this.app.components.__backendSession__;

if(!server) {
logger.error('server component not enable on %s', this.app.serverId);
utils.invokeCallback(cb, new Error('server component not enable'));
return;
}

if(!sessionService) {
logger.error('backend session component not enable on %s', this.app.serverId);
utils.invokeCallback(cb, new Error('backend sesssion component not enable'));
return;
}

// generate backend session for current request
var backendSession = sessionService.create(session);

// handle the request

// logger.debug('backend server [%s] handle message: %j', this.app.serverId, msg);

var dmsg = {
route: route,
body: body,
compressGzip: compressGzip
}

var socket = {
aesPassword: aesPassword
}

var connector = this.app.components.__connector__.connector;
connector.runDecode(dmsg, socket, function(err, msg) {
if(err) {
return cb(err);
}

server.handle(msg, backendSession, function(err, resp, opts) {
utils.invokeCallback(cb, err, resp, opts);
});
});
};
61 changes: 52 additions & 9 deletions lib/common/service/handlerService.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ var Service = function(app, opts) {
if(!!opts.reloadHandlers) {
watchHandlers(app, this.handlerMap);
}

this.enableForwardLog = opts.enableForwardLog || false;
};

module.exports = Service;
Expand All @@ -34,17 +36,32 @@ Service.prototype.handle = function(routeRecord, msg, session, cb) {
return;
}
var start = Date.now();
var self = this;

var callback = function(err, resp, opts) {
if(self.enableForwardLog) {
var log = {
route : msg.__route__,
args : msg,
time : utils.format(new Date(start)),
timeUsed : new Date() - start
};
forwardLogger.info(JSON.stringify(log));
}

handler[routeRecord.method](msg, session, function(err, resp, opts) {
var log = {
route : msg.__route__,
args : msg,
time : utils.format(new Date(start)),
timeUsed : new Date() - start
};
forwardLogger.info(JSON.stringify(log));
resp = getResp(arguments);
utils.invokeCallback(cb, err, resp, opts);
});
}

var method = routeRecord.method;

if(!Array.isArray(msg)) {
handler[method](msg, session, callback);
} else {
msg.push(session);
msg.push(callback);
handler[method].apply(handler, msg);
}
return;
};

Expand Down Expand Up @@ -93,3 +110,29 @@ var watchHandlers = function(app, handlerMap) {
});
}
};

var getResp = function(args) {
var len = args.length;
if(len == 1) {
return [];
}

if(len == 2) {
return [args[1]];
}

if(len == 3) {
return [args[1], args[2]];
}

if(len == 4) {
return [args[1], args[2], args[3]];
}

var r = new Array(len);
for (var i = 1; i < len; i++) {
r[i] = args[i];
}

return r;
}
Loading

0 comments on commit ad2a700

Please sign in to comment.