Files
axyz/tools/LiveTexturing/node_modules/zmq/test/zmq_proxy.router-dealer.js
T
2016-03-18 10:14:02 +01:00

97 lines
2.1 KiB
JavaScript

var zmq = require('..')
, should = require('should')
, semver = require('semver');
var addr = 'tcp://127.0.0.1'
, frontendAddr = addr+':5504'
, backendAddr = addr+':5505'
, captureAddr = addr+':5506';
describe('proxy.router-dealer', function() {
it('should proxy req-rep connected over router-dealer', function (done){
var frontend = zmq.socket('router');
var backend = zmq.socket('dealer');
var rep = zmq.socket('rep');
var req = zmq.socket('req');
frontend.bindSync(frontendAddr);
backend.bindSync(backendAddr);
req.connect(frontendAddr);
rep.connect(backendAddr);
req.on('message',function(msg){
msg.should.be.an.instanceof(Buffer);
msg.toString().should.equal('foo bar');
frontend.close();
backend.close();
req.close();
rep.close();
done();
});
rep.on('message', function (msg) {
rep.send(msg+' bar');
});
setTimeout(function() {
req.send('foo');
}, 100.0);
zmq.proxy(frontend,backend);
});
it('should proxy rep-req connections with capture', function (done){
var frontend = zmq.socket('router');
var backend = zmq.socket('dealer');
var rep = zmq.socket('rep');
var req = zmq.socket('req');
var capture = zmq.socket('pub');
var capSub = zmq.socket('sub');
frontend.bindSync(frontendAddr);
backend.bindSync(backendAddr);
capture.bindSync(captureAddr);
req.connect(frontendAddr);
rep.connect(backendAddr);
capSub.connect(captureAddr);
capSub.subscribe('');
req.on('message',function (msg) {
req.close();
rep.close();
console.log(msg.toString());
});
rep.on('message', function (msg) {
rep.send(msg+' bar');
});
capSub.on('message',function (msg) {
backend.close();
frontend.close();
capture.close();
capSub.close();
setTimeout(function() {
msg.should.be.an.instanceof(Buffer);
msg.toString().should.equal('foo bar');
done();
},100.0)
});
setTimeout(function() {
req.send('foo');
},200.0)
zmq.proxy(frontend,backend,capture);
});
});