1 |
|
2 | transports =
|
3 | amqp: require './amqp'
|
4 | mqtt: require './mqtt'
|
5 | direct: require './direct'
|
6 |
|
7 | supportsScheme = (scheme) ->
|
8 | return scheme in Object.keys transports
|
9 |
|
10 | exports.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 |
|
16 | exports.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 |
|
22 | exports.register = (scheme, module) ->
|
23 | transports[scheme] = module
|