Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit a1db2bc

Browse files
committedFeb 27, 2017
AMQP: Use exchange instead of queue for discovery
References msgflo/msgflo#13
1 parent 6a87305 commit a1db2bc

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed
 

‎src/amqp.coffee

+14-7
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
debug = require('debug')('msgflo:amqp')
33
async = require 'async'
44
interfaces = require './interfaces'
5+
uuid = require 'uuid'
56

67
try
78
amqp = require 'amqplib/callback_api'
@@ -144,10 +145,12 @@ class Client extends interfaces.MessagingClient
144145
protocol: 'discovery'
145146
command: 'participant'
146147
payload: part
147-
@channel.assertQueue 'fbp'
148-
data = new Buffer JSON.stringify msg
149-
@channel.sendToQueue 'fbp', data
150-
return callback null
148+
topic = 'fbp'
149+
@channel.assertExchange topic, 'fanout', (err) ->
150+
return callback err if err
151+
data = new Buffer JSON.stringify msg
152+
@channel.publish topic, data
153+
return callback null
151154

152155
class MessageBroker extends Client
153156
constructor: (address, options) ->
@@ -221,9 +224,13 @@ class MessageBroker extends Client
221224
data: data
222225
return handler out
223226

224-
@channel.assertQueue 'fbp'
225-
@channel.consume 'fbp', deserialize
226-
return callback null
227+
@channel.assertExchange 'fbp', 'fanout', {}, (err) =>
228+
return callback err if err
229+
subscribeQueue = '.fbp-subscribe-' + uuid.v4()
230+
@channel.assertQueue subscribeQueue, { persistent: false }, (err) =>
231+
return callback err if err
232+
@channel.consume subscribeQueue, deserialize
233+
return callback null
227234

228235
exports.Client = Client
229236
exports.MessageBroker = MessageBroker

0 commit comments

Comments
 (0)
Please sign in to comment.