make message broker off by default

This commit is contained in:
Manuel Araoz 2014-08-05 20:19:57 -03:00
parent 8429460a27
commit f0454728ba
4 changed files with 41875 additions and 29 deletions

View File

@ -5,8 +5,10 @@ var ios = null; // io is already taken in express
var util = require('bitcore').util; var util = require('bitcore').util;
var mdb = require('../../lib/MessageDb').default(); var mdb = require('../../lib/MessageDb').default();
var microtime = require('microtime'); var microtime = require('microtime');
var enableMessageBroker;
module.exports.init = function(io_ext) { module.exports.init = function(io_ext, config) {
enableMessageBroker = config ? config.enableMessageBroker : false;
ios = io_ext; ios = io_ext;
if (ios) { if (ios) {
// when a new socket connects // when a new socket connects
@ -14,40 +16,43 @@ module.exports.init = function(io_ext) {
// when it subscribes, make it join the according room // when it subscribes, make it join the according room
socket.on('subscribe', function(topic) { socket.on('subscribe', function(topic) {
if (socket.rooms.length === 1) { if (socket.rooms.length === 1) {
console.log('subscribe to '+topic); console.log('subscribe to ' + topic);
socket.join(topic); socket.join(topic);
} }
}); });
// when it requests sync, send him all pending messages if (enableMessageBroker) {
socket.on('sync', function(ts) { // when it requests sync, send him all pending messages
var rooms = socket.rooms; socket.on('sync', function(ts) {
if (rooms.length !== 2) { var rooms = socket.rooms;
socket.emit('insight-error', 'Must subscribe with public key before syncing'); if (rooms.length !== 2) {
return; socket.emit('insight-error', 'Must subscribe with public key before syncing');
} return;
var to = rooms[1];
var upper_ts = Math.round(microtime.now());
mdb.getMessages(to, ts, upper_ts, function(err, messages) {
if (err) {
throw new Error('Couldn\'t get messages on sync request: ' + err);
}
for (var i = 0; i < messages.length; i++) {
broadcastMessage(messages[i], socket);
} }
var to = rooms[1];
var upper_ts = Math.round(microtime.now());
mdb.getMessages(to, ts, upper_ts, function(err, messages) {
if (err) {
throw new Error('Couldn\'t get messages on sync request: ' + err);
}
for (var i = 0; i < messages.length; i++) {
broadcastMessage(messages[i], socket);
}
});
}); });
});
// when it sends a message, add it to db // when it sends a message, add it to db
socket.on('message', function(m) { socket.on('message', function(m) {
mdb.addMessage(m, function(err) { mdb.addMessage(m, function(err) {
if (err) { if (err) {
throw new Error('Couldn\'t add message to database: ' + err); throw new Error('Couldn\'t add message to database: ' + err);
} }
});
}); });
}); }
}); });
mdb.on('message', broadcastMessage); if (enableMessageBroker)
mdb.on('message', broadcastMessage);
} }
}; };

View File

@ -76,7 +76,7 @@ var bitcoindConf = {
disableAgent: true disableAgent: true
}; };
var enableMessageBroker = process.env.ENABLE_MESSAGE_BROKER === 'true';
if (!fs.existsSync(db)) { if (!fs.existsSync(db)) {
var err = fs.mkdirSync(db); var err = fs.mkdirSync(db);
@ -89,6 +89,7 @@ if (!fs.existsSync(db)) {
} }
module.exports = { module.exports = {
enableMessageBroker: enableMessageBroker,
version: version, version: version,
root: rootPath, root: rootPath,
publicPath: process.env.INSIGHT_PUBLIC_PATH || false, publicPath: process.env.INSIGHT_PUBLIC_PATH || false,

View File

@ -1 +0,0 @@
../node_modules/bitcore/browser/bundle.js

41841
examples/bitcore.js Normal file

File diff suppressed because one or more lines are too long

View File

@ -120,7 +120,7 @@ require('./config/routes')(expressApp);
// socket.io // socket.io
var server = require('http').createServer(expressApp); var server = require('http').createServer(expressApp);
var ios = require('socket.io')(server); var ios = require('socket.io')(server);
require('./app/controllers/socket.js').init(ios); require('./app/controllers/socket.js').init(ios, config);
//Start the app by listening on <port> //Start the app by listening on <port>
server.listen(config.port, function() { server.listen(config.port, function() {