fix logging and plugin

This commit is contained in:
Manuel Araoz 2014-08-20 12:49:57 -04:00
parent a5fda98cdc
commit f1c3d7c498
6 changed files with 40 additions and 39 deletions

View File

@ -3,17 +3,17 @@
// server-side socket behaviour
var ios = null; // io is already taken in express
var util = require('bitcore').util;
var logger = require('../../lib/logger');
var logger = require('../../lib/logger').logger;
module.exports.init = function(io_ext) {
ios = io_ext;
if (ios) {
// when a new socket connects
ios.sockets.on('connection', function(socket) {
logger.info('New connection from ' + socket.id);
logger.debug('New connection from ' + socket.id);
// when it subscribes, make it join the according room
socket.on('subscribe', function(topic) {
logger.info('subscribe to ' + topic);
logger.debug('subscribe to ' + topic);
socket.join(topic);
});
@ -66,11 +66,3 @@ module.exports.broadcastSyncInfo = function(historicSync) {
ios.sockets.in('sync').emit('status', historicSync);
};
var broadcastMessage = module.exports.broadcastMessage = function(message, socket) {
if (ios) {
var s = socket || ios.sockets.in(message.to);
logger.info('sending message to ' + message.to);
s.emit('message', message);
}
}

View File

@ -19,10 +19,7 @@ var MAX_OPEN_FILES = 500;
var CONCURRENCY = 5;
var d = logger.log;
var info = logger.info;
var db;
var MessageDb = function(opts) {
opts = opts || {};
this.path = config.leveldb + '/messages' + (opts.name ? ('-' + opts.name) : '');

View File

@ -39,7 +39,7 @@ var bitcore = require('bitcore'),
bitcoreUtil = bitcore.util,
buffertools = require('buffertools');
var logger = require('./logger').logger;
var logger = require('./logger');
var inf = logger.info;
var db = imports.db || levelup(config.leveldb + '/txs', {

View File

@ -1,7 +1,7 @@
var winston = require('winston');
var logger = winston;
logger.transports.Console.level = 'debug';
logger.info('starting...');
winston.transports.console.level = 'debug';
winston.info('starting...')
module.exports.logger=winston;
module.exports.logger = logger;

View File

@ -66,11 +66,11 @@
"preconditions": "^1.0.7",
"should": "~2.1.1",
"sinon": "~1.7.3",
"socket.io": "1.0.6",
"socket.io-client": "1.0.6",
"soop": "=0.1.5",
"winston": "*",
"xmlhttprequest": "~1.6.0",
"socket.io": "1.0.6",
"socket.io-client": "1.0.6"
"xmlhttprequest": "~1.6.0"
},
"devDependencies": {
"chai": "*",

View File

@ -1,14 +1,17 @@
var microtime = require('microtime');
var mdb = require('../../lib/MessageDb').default();
var mdb = require('../lib/MessageDb').default();
var logger = require('../lib/logger').logger;
var preconditions = require('preconditions').singleton();
module.exports.init = function(ios, config) {
ios.sockets.on('connection', function(socket) {
var io;
module.exports.init = function(ext_io, config) {
preconditions.checkArgument(ext_io);
io = ext_io;
io.sockets.on('connection', function(socket) {
// when it requests sync, send him all pending messages
socket.on('sync', function(ts) {
log('Sync requested by ' + socket.id);
log(' from timestamp ' + ts);
logger.debug('Sync requested by ' + socket.id);
logger.debug(' from timestamp ' + ts);
var rooms = socket.rooms;
if (rooms.length !== 2) {
socket.emit('insight-error', 'Must subscribe with public key before syncing');
@ -16,12 +19,12 @@ module.exports.init = function(ios, config) {
}
var to = rooms[1];
var upper_ts = Math.round(microtime.now());
log(' to timestamp ' + upper_ts);
logger.debug(' to timestamp ' + upper_ts);
mdb.getMessages(to, ts, upper_ts, function(err, messages) {
if (err) {
throw new Error('Couldn\'t get messages on sync request: ' + err);
}
log('\tFound ' + messages.length + ' message' + (messages.length !== 1 ? 's' : ''));
logger.debug('\tFound ' + messages.length + ' message' + (messages.length !== 1 ? 's' : ''));
for (var i = 0; i < messages.length; i++) {
broadcastMessage(messages[i], socket);
}
@ -30,7 +33,7 @@ module.exports.init = function(ios, config) {
// when it sends a message, add it to db
socket.on('message', function(m) {
log('Message sent from ' + m.pubkey + ' to ' + m.to);
logger.debug('Message sent from ' + m.pubkey + ' to ' + m.to);
mdb.addMessage(m, function(err) {
if (err) {
throw new Error('Couldn\'t add message to database: ' + err);
@ -41,14 +44,14 @@ module.exports.init = function(ios, config) {
// disconnect handler
socket.on('disconnect', function() {
log('disconnected ' + socket.id);
logger.debug('disconnected ' + socket.id);
});
mdb.on('message', broadcastMessage);
// when it requests sync, send him all pending messages
socket.on('sync', function(ts) {
log('Sync requested by ' + socket.id);
log(' from timestamp ' + ts);
logger.debug('Sync requested by ' + socket.id);
logger.debug(' from timestamp ' + ts);
var rooms = socket.rooms;
if (rooms.length !== 2) {
socket.emit('insight-error', 'Must subscribe with public key before syncing');
@ -56,12 +59,12 @@ module.exports.init = function(ios, config) {
}
var to = rooms[1];
var upper_ts = Math.round(microtime.now());
log(' to timestamp ' + upper_ts);
logger.debug(' to timestamp ' + upper_ts);
mdb.getMessages(to, ts, upper_ts, function(err, messages) {
if (err) {
throw new Error('Couldn\'t get messages on sync request: ' + err);
}
log('\tFound ' + messages.length + ' message' + (messages.length !== 1 ? 's' : ''));
logger.debug('\tFound ' + messages.length + ' message' + (messages.length !== 1 ? 's' : ''));
for (var i = 0; i < messages.length; i++) {
broadcastMessage(messages[i], socket);
}
@ -70,7 +73,7 @@ module.exports.init = function(ios, config) {
// when it sends a message, add it to db
socket.on('message', function(m) {
log('Message sent from ' + m.pubkey + ' to ' + m.to);
logger.debug('Message sent from ' + m.pubkey + ' to ' + m.to);
mdb.addMessage(m, function(err) {
if (err) {
throw new Error('Couldn\'t add message to database: ' + err);
@ -81,10 +84,19 @@ module.exports.init = function(ios, config) {
// disconnect handler
socket.on('disconnect', function() {
log('disconnected ' + socket.id);
logger.debug('disconnected ' + socket.id);
});
});
mdb.on('message', broadcastMessage);
};
var broadcastMessage = module.exports.broadcastMessage = function(message, socket) {
preconditions.checkState(io);
var s = socket || io.sockets.in(message.to);
logger.debug('sending message to ' + message.to);
s.emit('message', message);
}