Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
mq_sockets[c]['apikey'] = apikey;
// if guaranteed delivery and pattern is push, change to req.
if ( GUARANTEE_DELIVERY ) {
if ( zmq_pattern === 'push' ) {
zmq_pattern = 'req';
}
if ( zmq_pattern === 'pull' ) {
zmq_pattern = 'rep';
}
}
logging.log('messenger:'+processID+'@inputs> zmq_pattern: ' + zmq_pattern );
mq_sockets[c]['socket'] = mq.socket(zmq_pattern);
if ( topology['connections'][c]['zmq_socket'] == 'bind' ) {
logging.log('messenger:'+processID+"@inputs> zmq binding for apikey: " + apikey + ", namespace: " + namespace + ", at: " + zmq_pattern + "@" + zmq_address);
mq_sockets[c]['socket'].bind(topology['connections'][c]['zmq_address']);
} else {
logging.log('messenger:'+processID+"zmq connecting for apikey: " + apikey + ", namespace: " + namespace + ", at: " + zmq_pattern + "@" + zmq_address);
mq_sockets[c]['socket'].connect(topology['connections'][c]['zmq_address']);
}
mq_sockets[c]['socket'].on('disconnect', function(s){
logging.log('messenger:'+processID + '@input> ' + "disconnected: " + s._peername.port);
//console.log('> ' + util.inspect(msg, true, 99, true));
});
// TODO: future feature.
if ( GUARANTEE_DELIVERY ) {
mq_sockets[c]['socket'].set('guarantee_delivery', false);
mq_sockets[c]['apikey'] = apikey;
// if guaranteed delivery and pattern is push, change to req.
if ( GUARANTEE_DELIVERY ) {
if ( zmq_pattern === 'push' ) {
zmq_pattern = 'req';
}
if ( zmq_pattern === 'pull' ) {
zmq_pattern = 'rep';
}
}
logging.log('messenger:'+processID+'@inputs> zmq_pattern: ' + zmq_pattern );
mq_sockets[c]['socket'] = mq.socket(zmq_pattern);
if ( topology['connections'][c]['zmq_socket'] == 'bind' ) {
logging.log('messenger:'+processID+"@inputs> zmq binding for apikey: " + apikey + ", namespace: " + namespace + ", at: " + zmq_pattern + "@" + zmq_address);
mq_sockets[c]['socket'].bind(topology['connections'][c]['zmq_address']);
} else {
logging.log('messenger:'+processID+"zmq connecting for apikey: " + apikey + ", namespace: " + namespace + ", at: " + zmq_pattern + "@" + zmq_address);
mq_sockets[c]['socket'].connect(topology['connections'][c]['zmq_address']);
}
mq_sockets[c]['socket'].on('disconnect', function(s){
logging.log('messenger:'+processID + '@input> ' + "disconnected: " + s._peername.port);
//console.log('> ' + util.inspect(msg, true, 99, true));
});
// TODO: future feature.
if ( GUARANTEE_DELIVERY ) {
mq_sockets[c]['socket'].set('guarantee_delivery', false);
Api.prototype.setupServer = function(options) {
var self = this;
axon.codec.define('json', {
encode: JSON.stringify,
decode: JSON.parse
});
// setup a json codec
this._events = axon.socket('push');
this._events.bind(options.events);
this._events.format('json');
// setup the events socket
this._events.on('connect', function() {
self.emit('metadata', {pid: process.pid, incomingPort: options.rpc, outgoingPort: options.events});
self.emit('synchronize', {keys: _.keys(Clients)});
});
// setup some events for our outbound port
this._rpc = axon.socket('sub-emitter');
this._rpc.bind(options.rpc);
// we also setup an inbound socket which uses the sub emitter
this._rpc.on('createClient', function(key, client, dummy) {
if (typeof key === 'object') {
mq_sockets[c]['apikey'] = apikey;
// if guaranteed delivery and pattern is push, change to req.
if ( GUARANTEE_DELIVERY ) {
if ( zmq_pattern === 'push' ) {
zmq_pattern = 'req';
}
if ( zmq_pattern === 'pull' ) {
zmq_pattern = 'rep';
}
}
logging.log('messenger:'+processID+'@inputs> zmq_pattern: ' + zmq_pattern );
mq_sockets[c]['socket'] = mq.socket(zmq_pattern);
if ( topology['connections'][c]['zmq_socket'] == 'bind' ) {
logging.log('messenger:'+processID+"@inputs> zmq binding for apikey: " + apikey + ", namespace: " + namespace + ", at: " + zmq_pattern + "@" + zmq_address);
mq_sockets[c]['socket'].bind(topology['connections'][c]['zmq_address']);
} else {
logging.log('messenger:'+processID+"zmq connecting for apikey: " + apikey + ", namespace: " + namespace + ", at: " + zmq_pattern + "@" + zmq_address);
mq_sockets[c]['socket'].connect(topology['connections'][c]['zmq_address']);
}
mq_sockets[c]['socket'].on('disconnect', function(s){
logging.log('messenger:'+processID + '@input> ' + "disconnected: " + s._peername.port);
});
// TODO: future feature.
if ( GUARANTEE_DELIVERY ) {
mq_sockets[c]['socket'].set('guarantee_delivery', false);
mq_sockets[c]['socket'].set('commits_hwm', QUE_HWM);
for ( c = 0; c < connections.length; c++ ) {
//logging.log('messenger@stores> make ZMQ this connection!!!');
var zmq_pattern = connections[c]['zmq_pattern'];
// if guaranteed delivery and pattern is push, change to req.
if ( GUARANTEE_DELIVERY ) {
if ( zmq_pattern === 'push' ) {
zmq_pattern = 'req';
}
if ( zmq_pattern === 'pull' ) {
zmq_pattern = 'rep';
}
}
//logging.log('messenger@stores> zmq_pattern: ' + zmq_pattern );
socks[c] = mq.socket(zmq_pattern);
//logging.log('messenger@stores> zmq_address: ' + connections[c]['zmq_address']);
if ( connections[c]['zmq_socket'] === 'bind' ) {
socks[c].bind(connections[c]['zmq_address']);
} else {
socks[c].connect(connections[c]['zmq_address']);
}
//logging.log('messenger@stores> messenger, ' + connections[c]['zmq_socket'] + ':' + zmq_pattern + '@' + connections[c]['zmq_address']);
//socks[c].format('json');
// SET this from connected axon socket so can control pause() and resume().
socks[c].on('connect', function(a){
//logging.log('messenger@stores> CONNECTED --------------');
var _this = this;
exports.pause = function() {
// if guaranteed delivery and pattern is push, change to req.
if ( GUARANTEE_DELIVERY ) {
if ( zmq_pattern === 'push' ) {
zmq_pattern = 'req';
}
if ( zmq_pattern === 'pull' ) {
zmq_pattern = 'rep';
}
}
logging.log('messenger@workers> zmq_pattern: ' + zmq_pattern );
if ( zmq_pattern === 'push' || zmq_pattern === 'rep' ) {
rr++;
}
socks[c] = mq.socket(zmq_pattern);
logging.log('messenger@workers> zmq_address: ' + connections[c]['zmq_address']);
if ( connections[c]['zmq_socket'] === 'bind' ) {
socks[c].bind(connections[c]['zmq_address']);
} else {
socks[c].connect(connections[c]['zmq_address']);
}
logging.log('messenger@workers> messenger, ' + connections[c]['zmq_socket'] + ':' + zmq_pattern + '@' + connections[c]['zmq_address']);
//socks[c].format('json');
// SET this from connected axon socket so can control pause() and resume().
socks[c].on('connect', function(a){
var _this = this;
var thisc = Number(c);
function start() {
var local = (host === '0.0.0.0');
var responder = axon.socket('rep');
// responder.bind(port, host);
if (local) {
// this is a fudge to allow tests to work
responder.bind(port, host);
responder.once('bind', function () {
log('Ready on tcp://' + host + ':' + port + '...');
server.stop = responder.close.bind(responder);
bind();
}).on('connect', function () {
log('new connection');
});
} else {
// production based, connect to the remote port
log('Trying to connect to pull from tcp://' + host + ':' + port + '...');
responder.connect(port, host);
responder.once('connect', function () {
function Logger(addrs, options) {
if ('string' == typeof addrs) addrs = [addrs];
options = options || {};
this.filter = levels[filter];
assert(addrs, 'log-server addresses required');
this.stdio = true;
this.indent = 2; // 2 is the default legacy value.
// 0 is a valid value, so use hasOwnProperty.
if (options.hasOwnProperty('indent')) {
this.indent = options.indent;
}
this.sock = axon.socket('push');
this.sock.set('hwm', options.hwm || Infinity);
this.sock.format('json');
this.connect(addrs);
}
const rpc = require('axon-rpc');
const axon = require('axon');
const req = axon.socket('req');
var client = new rpc.Client(req);
req.connect(6666);
const cmd = process.argv[2];
if (cmd === '-s') {
client.call('stop', function(err, cluster){
if (!err) {
console.log('Process disconnectd');
process.exit(0);
}
});
} else {
client.call('prepare', function(err, cluster){
return function(string, encoding, fd) {
stdout.write(JSON.stringify([(new Date()).toISOString(), string]));
};
}
)(process.stderr.write);
process.stdout.write = (function(write) {
return function(string, encoding, fd) {
stdout.write('\n' + JSON.stringify([(new Date()).toISOString(), string]));
};
})(process.stdout.write);
if (!process.env.SLAVE) {
const rpc = require('axon-rpc');
const axon = require('axon');
const rep = axon.socket('rep');
const server = new rpc.Server(rep);
rep.bind(6666, 'localhost');
console.log('rpc server started at 6666');
server.expose({
prepare: function(fn){
console.log('rpc connected');
cachFn = fn;
rpcServer(fn);
},
stop(fn) {
console.log('rpc disconnectd');
cachFn = fn;
rpcServer(fn, 'close');
},
});