subscribe addresses

This commit is contained in:
Ivan Socolsky 2015-03-30 12:40:58 -03:00
parent 7690b594a4
commit 3fe2aaa828
1 changed files with 27 additions and 3 deletions

View File

@ -23,16 +23,38 @@ WsApp._unauthorized = function() {
socket.disconnect();
};
WsApp.subscribeAddresses = function(walletId, addresses) {
console.log('*** [wsapp.js ln27] subscribing:', addresses, walletId); // TODO
_.each([].concat(addresses), function(address) {
subscriptions[address] = walletId;
});
};
WsApp.subscribeWallet = function(serviceInstance) {
// TODO: optimize!
serviceInstance.getMainAddresses({}, function(err, addresses) {
if (err) {
log.warn('Could not subscribe to addresses for wallet ' + serviceInstance.walletId);
return;
}
WsApp.subscribeAddress(_.pluck(addresses, 'address'), serviceInstance.walletId);
});
};
WsApp.start = function(server) {
var self = this;
var io = require('socket.io')(server);
WalletService.onNotification(function(serviceInstance, args) {
var room = serviceInstance.walletId || args.walletId;
if (room) {
io.to(room).emit('notification', args);
var walletId = serviceInstance.walletId || args.walletId;
if (!walletId) return;
if (args.type == 'NewAddress') {
WsApp.subscribeAddress(walletId, args.address);
}
io.to(walletId).emit('notification', args);
});
io.on('connection', function(socket) {
@ -47,6 +69,8 @@ WsApp.start = function(server) {
socket.join(res.walletId);
socket.emit('authorized');
WsApp.subscribeWallet(res);
});
});
});