delegate event broadcasting
This commit is contained in:
parent
665e0f8731
commit
deaca91a3d
13
app.js
13
app.js
|
@ -8,6 +8,17 @@ var port = process.env.BWS_PORT || 3001;
|
||||||
var app = ExpressApp.start({
|
var app = ExpressApp.start({
|
||||||
basePath: basePath,
|
basePath: basePath,
|
||||||
});
|
});
|
||||||
app.listen(port);
|
//app.listen(port);
|
||||||
|
|
||||||
|
var server = require('http').Server(app);
|
||||||
|
var io = require('socket.io')(server);
|
||||||
|
|
||||||
|
server.listen(port);
|
||||||
|
|
||||||
|
io.sockets.on('connection', function(socket) {
|
||||||
|
socket.emit('message', {
|
||||||
|
'message': 'hello world'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
console.log('Bitcore Wallet Service running on port ' + port);
|
console.log('Bitcore Wallet Service running on port ' + port);
|
||||||
|
|
|
@ -28,6 +28,23 @@ var Notification = require('./model/notification');
|
||||||
var initialized = false;
|
var initialized = false;
|
||||||
var storage, blockExplorer;
|
var storage, blockExplorer;
|
||||||
|
|
||||||
|
|
||||||
|
function EventBroadcaster() {};
|
||||||
|
|
||||||
|
nodeutil.inherits(EventBroadcaster, events.EventEmitter);
|
||||||
|
|
||||||
|
EventBroadcaster.prototype.broadcast = function(service, args) {
|
||||||
|
this.emit(service, args);
|
||||||
|
};
|
||||||
|
|
||||||
|
var _eventBroadcasterInstance;
|
||||||
|
EventBroadcaster.singleton = function() {
|
||||||
|
if (!_eventBroadcasterInstance) {
|
||||||
|
_eventBroadcasterInstance = new EventBroadcaster();
|
||||||
|
}
|
||||||
|
return _eventBroadcasterInstance;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates an instance of the Bitcore Wallet Service.
|
* Creates an instance of the Bitcore Wallet Service.
|
||||||
* @constructor
|
* @constructor
|
||||||
|
@ -41,9 +58,6 @@ function WalletService() {
|
||||||
this.notifyTicker = 0;
|
this.notifyTicker = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
nodeutil.inherits(WalletService, events.EventEmitter);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initializes global settings for all instances.
|
* Initializes global settings for all instances.
|
||||||
* @param {Object} opts
|
* @param {Object} opts
|
||||||
|
@ -161,6 +175,9 @@ WalletService.prototype._verifySignature = function(text, signature, pubKey) {
|
||||||
return WalletUtils.verifyMessage(text, signature, pubKey);
|
return WalletUtils.verifyMessage(text, signature, pubKey);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
WalletService.prototype._emit = function(args) {
|
||||||
|
EventBroadcaster.singleton().broadcast(this, args);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* _notify
|
* _notify
|
||||||
|
@ -182,7 +199,7 @@ WalletService.prototype._notify = function(type, data) {
|
||||||
ticker: this.notifyTicker++,
|
ticker: this.notifyTicker++,
|
||||||
});
|
});
|
||||||
this.storage.storeNotification(walletId, n, function() {
|
this.storage.storeNotification(walletId, n, function() {
|
||||||
self.emit(n);
|
self._emit(n);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1945,7 +1945,7 @@ describe('Copay server', function() {
|
||||||
server.getPendingTxs({}, function(err, txs) {
|
server.getPendingTxs({}, function(err, txs) {
|
||||||
var tx = txs[2];
|
var tx = txs[2];
|
||||||
var signatures = helpers.clientSign(tx, TestData.copayers[0].xPrivKey);
|
var signatures = helpers.clientSign(tx, TestData.copayers[0].xPrivKey);
|
||||||
sinon.spy(server, 'emit');
|
sinon.spy(server, '_emit');
|
||||||
server.signTx({
|
server.signTx({
|
||||||
txProposalId: tx.id,
|
txProposalId: tx.id,
|
||||||
signatures: signatures,
|
signatures: signatures,
|
||||||
|
@ -1964,9 +1964,9 @@ describe('Copay server', function() {
|
||||||
var types = _.pluck(notifications, 'type');
|
var types = _.pluck(notifications, 'type');
|
||||||
types.should.deep.equal(['NewOutgoingTx', 'TxProposalFinallyAccepted', 'TxProposalAcceptedBy']);
|
types.should.deep.equal(['NewOutgoingTx', 'TxProposalFinallyAccepted', 'TxProposalAcceptedBy']);
|
||||||
// Check also events
|
// Check also events
|
||||||
server.emit.getCall(0).args[0].type.should.equal('TxProposalAcceptedBy');
|
server._emit.getCall(0).args[0].type.should.equal('TxProposalAcceptedBy');
|
||||||
server.emit.getCall(1).args[0].type.should.equal('TxProposalFinallyAccepted');;
|
server._emit.getCall(1).args[0].type.should.equal('TxProposalFinallyAccepted');;
|
||||||
server.emit.getCall(2).args[0].type.should.equal('NewOutgoingTx');
|
server._emit.getCall(2).args[0].type.should.equal('NewOutgoingTx');
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue