subscribe addresses
This commit is contained in:
parent
7690b594a4
commit
3fe2aaa828
30
lib/wsapp.js
30
lib/wsapp.js
|
@ -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);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue