index.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /**
  2. * Constructors.
  3. */
  4. exports.PubEmitterSocket = require('./sockets/pub-emitter');
  5. exports.SubEmitterSocket = require('./sockets/sub-emitter');
  6. exports.PushSocket = require('./sockets/push');
  7. exports.PullSocket = require('./sockets/pull');
  8. exports.PubSocket = require('./sockets/pub');
  9. exports.SubSocket = require('./sockets/sub');
  10. exports.ReqSocket = require('./sockets/req');
  11. exports.RepSocket = require('./sockets/rep');
  12. exports.Socket = require('./sockets/sock');
  13. /**
  14. * Socket types.
  15. */
  16. exports.types = {
  17. 'pub-emitter': exports.PubEmitterSocket,
  18. 'sub-emitter': exports.SubEmitterSocket,
  19. 'push': exports.PushSocket,
  20. 'pull': exports.PullSocket,
  21. 'pub': exports.PubSocket,
  22. 'sub': exports.SubSocket,
  23. 'req': exports.ReqSocket,
  24. 'rep': exports.RepSocket
  25. };
  26. /**
  27. * Return a new socket of the given `type`.
  28. *
  29. * @param {String} type
  30. * @param {Object} options
  31. * @return {Socket}
  32. * @api public
  33. */
  34. exports.socket = function(type, options){
  35. var fn = exports.types[type];
  36. if (!fn) throw new Error('invalid socket type "' + type + '"');
  37. return new fn(options);
  38. };