UNPKG

multimq

Version:

Wrapper for using different message queue systems, such as: zeromq, axon and hypermq.

91 lines (62 loc) 2.97 kB
var multimq = require('..') , program = require('commander'); program .option('-s, --size <n>', 'message size in bytes [200]', parseInt) .option('-d, --duration <n>', 'duration of test [5000]', parseInt) .parse(process.argv) var service = multimq.service(); var options = { service: 'myService', mq: 'hypermq', pattern: 'pub', socket: 'bind', hostname: '127.0.0.1', port: 3443, secure: false, key: __dirname + '/keys/test-key.pem', cert: __dirname + '/keys/test-cert.pem', apikey: 'za91j2bk72f483ap62x', protocol: 'amp' }; var myService = new service(options); console.log('pub bound'); myService.on('closed', function(msg){ // connect peer has closed, so can exit this program. process.exit(); }); var BATCHING = true; var SIZE = program.size; var dataX = ']C\9DJ*\92\CC\E0" 54\D2]C\9DJ*\92\CC\E0"\D9C?\86\9A\81CΎ\D9qc\813\CE\91\DBZ\C1\B7\E3\EC\C9O\AFX*\Md d\A14\98ΐ\AC\00S;\96Jdw\9FcUʅ*x\F6\FA^\AC\C6.T,. ☃ {"": } abcDEFG \u00bd HIJKl 36 mnopQRST uvwxYZ 0123456789 {"": } \u00be 9876543210 ~!@#$%^&*()_+{}:">?><☃ {"": } abcDEFG \u00bd HIJKl 36 mnopQRST uvwxYZ 0123456789 {"": } \u00be 9876543210 ~!@#$%^&*()_+{}:">?><☃ {"": } abcDEFG \u00bd HIJKl 36 mnopQRST uvwxYZ 0123456789 {"": } \u00be 9876543210 ~!@#$%^&*()_+{}:">?><☃ {"": } abcDEFG \u00bd HIJKl 36 mnopQRST uvwxYZ 0123456789 {"": } \u00be 9876543210 ~!@#$%^&*()_+{}:">?><☃ {"": } abcDEFG \u00bd HIJKl 36 mnopQRST uvwxYZ 0123456789 {"": } \u00be 9876543210 ~!@#$%^&*()_+{}:">?><☃ {"": } abcDEFG \u00bd HIJKl 36 mnopQRST uvwxYZ 0123456789 {"": } \u00be 9876543210 ~!@#$%^&*()_+{}:">?><☃ {"": } abcDEFG \u00bd HIJKl 36 mnopQRST uvwxYZ 0123456789 {"": } \u00be 9876543210 ~!@#$%^&*()_+{}:">?><☃ {"": } abcDEFG \u00bd HIJKl 36 mnopQRST uvwxYZ 0123456789 {"": } \u00be 9876543210 ~!@#$%^&*()_+{}:">?><☃ {"": } abcDEFG \u00bd HIJKl 36 mnopQRST uvwxYZ 0123456789 {"": } \u00be 9876543210 ~!@#$%^&*()_+{}:">?><'; var dataZ = dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX + dataX; var dataA = new Buffer(dataZ); var data = dataA.slice(0, SIZE); var msg = {}; msg.id = 0; msg.events = []; console.log('sending %d byte messages', data.length); // batching, nable-ish var bsize = 0; var BATCH_SIZE = 16450; // bytes. function batch(data) { msg.events.push(data.toString('base64')); // convert buffer into base64. bsize += data.length; if ( bsize >= BATCH_SIZE ) { bsize = 0; // reset. myService.send(msg); msg.events = []; // reset. msg.id++; } } function more() { if ( BATCHING === true ) { batch(data); } else { // without batching msg.events.push(data.toString('base64')); myService.send(msg); msg.events = []; // reset. msg.id++; } setImmediate(more); } more();