Merge pull request #381 from adarqui/express-logger-0.0.7

Express & Socket.io logger
This commit is contained in:
Julian Lam
2013-10-05 14:39:14 -07:00
9 changed files with 287 additions and 7 deletions

View File

@@ -16,6 +16,9 @@ var cookie = require('cookie'),
async = require('async'),
RedisStoreLib = require('connect-redis')(express),
RDB = require('./redis'),
util = require('util'),
logger = require('./logger.js'),
fs = require('fs')
RedisStore = new RedisStoreLib({
client: RDB,
ttl: 60 * 60 * 24 * 14
@@ -54,6 +57,7 @@ module.exports.init = function(io) {
var hs = socket.handshake,
sessionID, uid;
// Validate the session, if present
socketCookieParser(hs, {}, function(err) {
sessionID = socket.handshake.signedCookies["express.sid"];
@@ -64,6 +68,16 @@ module.exports.init = function(io) {
userSockets[uid] = userSockets[uid] || [];
userSockets[uid].push(socket);
/* Need to save some state for the logger & maybe some other modules later on */
socket.state = {
user : {
uid : uid
}
};
/* If meta.config.loggerIOStatus > 0, logger.io_one will hook into this socket */
logger.io_one(socket,uid);
if (uid) {
RDB.zadd('users:online', Date.now(), uid, function(err, data) {
@@ -645,6 +659,8 @@ module.exports.init = function(io) {
if (!err) socket.emit('api:config.set', {
status: 'ok'
});
/* Another hook, for my (adarqui's) logger module */
logger.monitorConfig(this, data);
});
});