UNPKG

776 Btext/coffeescriptView Raw
1
2transports =
3 amqp: require './amqp'
4 mqtt: require './mqtt'
5 direct: require './direct'
6
7supportsScheme = (scheme) ->
8 return scheme in Object.keys transports
9
10exports.getClient = (address, options) ->
11 scheme = address.split('://')[0]
12 throw new Error 'Unsupported scheme: ' + scheme if not supportsScheme scheme
13 client = new transports[scheme].Client address, options
14 return client
15
16exports.getBroker = (address, options) ->
17 scheme = address.split('://')[0]
18 throw new Error 'Unsupported scheme: ' + scheme if not supportsScheme scheme
19 return new transports[scheme].MessageBroker address, options
20
21# @module: Must have Client and MessageBroker constructors, implementing these interfaces
22exports.register = (scheme, module) ->
23 transports[scheme] = module