web: option to enable/disable socket rpc handling
This commit is contained in:
parent
69ff5423c2
commit
24ca5ce053
@ -1,15 +1,19 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
var fs = require('fs');
|
||||||
var http = require('http');
|
var http = require('http');
|
||||||
var https = require('https');
|
var https = require('https');
|
||||||
var express = require('express');
|
var express = require('express');
|
||||||
var bodyParser = require('body-parser');
|
var bodyParser = require('body-parser');
|
||||||
var socketio = require('socket.io');
|
var socketio = require('socket.io');
|
||||||
var BaseService = require('../service');
|
|
||||||
var inherits = require('util').inherits;
|
var inherits = require('util').inherits;
|
||||||
|
|
||||||
|
var BaseService = require('../service');
|
||||||
|
var bitcore = require('bitcore-lib');
|
||||||
|
var _ = bitcore.deps._;
|
||||||
var index = require('../');
|
var index = require('../');
|
||||||
var log = index.log;
|
var log = index.log;
|
||||||
var fs = require('fs');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This service represents a hub for combining several services over a single HTTP port. Services
|
* This service represents a hub for combining several services over a single HTTP port. Services
|
||||||
@ -32,6 +36,9 @@ var WebService = function(options) {
|
|||||||
this.httpsOptions = options.httpsOptions || this.node.httpsOptions;
|
this.httpsOptions = options.httpsOptions || this.node.httpsOptions;
|
||||||
this.port = options.port || this.node.port || 3456;
|
this.port = options.port || this.node.port || 3456;
|
||||||
|
|
||||||
|
this.enableSocketRPC = _.isUndefined(options.enableSocketRPC) ?
|
||||||
|
WebService.DEFAULT_SOCKET_RPC : options.enableSocketRPC;
|
||||||
|
|
||||||
this.node.on('ready', function() {
|
this.node.on('ready', function() {
|
||||||
self.eventNames = self.getEventNames();
|
self.eventNames = self.getEventNames();
|
||||||
self.setupAllRoutes();
|
self.setupAllRoutes();
|
||||||
@ -43,6 +50,7 @@ var WebService = function(options) {
|
|||||||
inherits(WebService, BaseService);
|
inherits(WebService, BaseService);
|
||||||
|
|
||||||
WebService.dependencies = [];
|
WebService.dependencies = [];
|
||||||
|
WebService.DEFAULT_SOCKET_RPC = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called by Node to start the service
|
* Called by Node to start the service
|
||||||
@ -157,7 +165,9 @@ WebService.prototype.getEventNames = function() {
|
|||||||
WebService.prototype.socketHandler = function(socket) {
|
WebService.prototype.socketHandler = function(socket) {
|
||||||
var bus = this.node.openBus();
|
var bus = this.node.openBus();
|
||||||
|
|
||||||
socket.on('message', this.socketMessageHandler.bind(this));
|
if (this.enableSocketRPC) {
|
||||||
|
socket.on('message', this.socketMessageHandler.bind(this));
|
||||||
|
}
|
||||||
|
|
||||||
socket.on('subscribe', function(name, params) {
|
socket.on('subscribe', function(name, params) {
|
||||||
bus.subscribe(name, params);
|
bus.subscribe(name, params);
|
||||||
|
|||||||
@ -36,6 +36,19 @@ var WebService = proxyquire('../../lib/services/web', {http: httpStub, https: ht
|
|||||||
describe('WebService', function() {
|
describe('WebService', function() {
|
||||||
var defaultNode = new EventEmitter();
|
var defaultNode = new EventEmitter();
|
||||||
|
|
||||||
|
describe('@constructor', function() {
|
||||||
|
it('will set socket rpc settings', function() {
|
||||||
|
var web = new WebService({node: defaultNode, enableSocketRPC: false});
|
||||||
|
web.enableSocketRPC.should.equal(false);
|
||||||
|
|
||||||
|
var web2 = new WebService({node: defaultNode, enableSocketRPC: true});
|
||||||
|
web2.enableSocketRPC.should.equal(true);
|
||||||
|
|
||||||
|
var web3 = new WebService({node: defaultNode});
|
||||||
|
web3.enableSocketRPC.should.equal(WebService.DEFAULT_SOCKET_RPC);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('#start', function() {
|
describe('#start', function() {
|
||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
httpStub.createServer.reset();
|
httpStub.createServer.reset();
|
||||||
@ -236,6 +249,19 @@ describe('WebService', function() {
|
|||||||
socket.emit('message', 'data');
|
socket.emit('message', 'data');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('on message should NOT call socketMessageHandler if not enabled', function(done) {
|
||||||
|
web = new WebService({node: node, enableSocketRPC: false});
|
||||||
|
web.eventNames = web.getEventNames();
|
||||||
|
web.socketMessageHandler = sinon.stub();
|
||||||
|
socket = new EventEmitter();
|
||||||
|
web.socketHandler(socket);
|
||||||
|
socket.on('message', function() {
|
||||||
|
web.socketMessageHandler.callCount.should.equal(0);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
socket.emit('message', 'data');
|
||||||
|
});
|
||||||
|
|
||||||
it('on subscribe should call bus.subscribe', function(done) {
|
it('on subscribe should call bus.subscribe', function(done) {
|
||||||
bus.subscribe = function(param1) {
|
bus.subscribe = function(param1) {
|
||||||
param1.should.equal('data');
|
param1.should.equal('data');
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user