Guest User

Untitled

a guest
Oct 19th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. var zmq = require('zmq');
  2.  
  3. function Majordomo(options)
  4. {
  5. this.requests = zmq.socket('router');
  6. this.requests.identity = 'majordomo:incoming:' + process.pid;
  7. this.responders = zmq.socket('dealer');
  8. this.responders.identity = 'majordomo:outgoing:' + process.pid;
  9. if (options)
  10. this.configure(options);
  11. }
  12.  
  13. Majordomo.prototype.configure = function(options)
  14. {
  15. var self = this;
  16. this.config = options;
  17.  
  18. this.requests.on('message', function()
  19. {
  20. var argl = arguments.length,
  21. envelopes = Array.prototype.slice.call(arguments, 0, argl - 1),
  22. payload = arguments[argl - 1];
  23.  
  24. console.log('incoming request: ' + payload.toString('utf8'));
  25. self.responders.send([envelopes, payload]);
  26. });
  27.  
  28. this.requests.bind(options['router'], function(err)
  29. {
  30. if (err) console.log(err);
  31. console.log("router on "+options['router']);
  32. });
  33.  
  34. this.responders.on('message', function()
  35. {
  36. var argl = arguments.length,
  37. envelopes = Array.prototype.slice.call(arguments, 0, argl - 1),
  38. payload = arguments[argl - 1];
  39.  
  40. console.log('incoming response: ' + payload.toString('utf8'));
  41. self.requests.send([envelopes, payload]);
  42. });
  43.  
  44. this.responders.bind(options['dealer'], function(err)
  45. {
  46. if (err) console.log(err);
  47. console.log("dealer on "+options['dealer']);
  48. });
  49. }
  50.  
  51. var majordomo = new Majordomo();
  52. majordomo.configure({
  53. router: 'tcp://127.0.0.1:3009',
  54. dealer: 'tcp://127.0.0.1:3010'
  55. });
Add Comment
Please, Sign In to add comment