web: option to enable/disable socket rpc handling
This commit is contained in:
parent
69ff5423c2
commit
24ca5ce053
@ -1,15 +1,19 @@
|
||||
'use strict';
|
||||
|
||||
var fs = require('fs');
|
||||
var http = require('http');
|
||||
var https = require('https');
|
||||
var express = require('express');
|
||||
var bodyParser = require('body-parser');
|
||||
var socketio = require('socket.io');
|
||||
var BaseService = require('../service');
|
||||
var inherits = require('util').inherits;
|
||||
|
||||
var BaseService = require('../service');
|
||||
var bitcore = require('bitcore-lib');
|
||||
var _ = bitcore.deps._;
|
||||
var index = require('../');
|
||||
var log = index.log;
|
||||
var fs = require('fs');
|
||||
|
||||
|
||||
/**
|
||||
* 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.port = options.port || this.node.port || 3456;
|
||||
|
||||
this.enableSocketRPC = _.isUndefined(options.enableSocketRPC) ?
|
||||
WebService.DEFAULT_SOCKET_RPC : options.enableSocketRPC;
|
||||
|
||||
this.node.on('ready', function() {
|
||||
self.eventNames = self.getEventNames();
|
||||
self.setupAllRoutes();
|
||||
@ -43,6 +50,7 @@ var WebService = function(options) {
|
||||
inherits(WebService, BaseService);
|
||||
|
||||
WebService.dependencies = [];
|
||||
WebService.DEFAULT_SOCKET_RPC = true;
|
||||
|
||||
/**
|
||||
* Called by Node to start the service
|
||||
@ -157,7 +165,9 @@ WebService.prototype.getEventNames = function() {
|
||||
WebService.prototype.socketHandler = function(socket) {
|
||||
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) {
|
||||
bus.subscribe(name, params);
|
||||
|
||||
@ -36,6 +36,19 @@ var WebService = proxyquire('../../lib/services/web', {http: httpStub, https: ht
|
||||
describe('WebService', function() {
|
||||
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() {
|
||||
beforeEach(function() {
|
||||
httpStub.createServer.reset();
|
||||
@ -236,6 +249,19 @@ describe('WebService', function() {
|
||||
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) {
|
||||
bus.subscribe = function(param1) {
|
||||
param1.should.equal('data');
|
||||
|
||||
Loading…
Reference in New Issue
Block a user