make message broker off by default
This commit is contained in:
parent
8429460a27
commit
f0454728ba
@ -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);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -1 +0,0 @@
|
|||||||
../node_modules/bitcore/browser/bundle.js
|
|
||||||
41841
examples/bitcore.js
Normal file
41841
examples/bitcore.js
Normal file
File diff suppressed because one or more lines are too long
@ -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() {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user