|
2 | 2 | debug = require('debug')('msgflo:amqp')
|
3 | 3 | async = require 'async'
|
4 | 4 | interfaces = require './interfaces'
|
| 5 | +uuid = require 'uuid' |
5 | 6 |
|
6 | 7 | try
|
7 | 8 | amqp = require 'amqplib/callback_api'
|
@@ -144,10 +145,12 @@ class Client extends interfaces.MessagingClient
|
144 | 145 | protocol: 'discovery'
|
145 | 146 | command: 'participant'
|
146 | 147 | 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 |
151 | 154 |
|
152 | 155 | class MessageBroker extends Client
|
153 | 156 | constructor: (address, options) ->
|
@@ -221,9 +224,13 @@ class MessageBroker extends Client
|
221 | 224 | data: data
|
222 | 225 | return handler out
|
223 | 226 |
|
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 |
227 | 234 |
|
228 | 235 | exports.Client = Client
|
229 | 236 | exports.MessageBroker = MessageBroker
|
0 commit comments