     type        : 'fanout'
     autoDelete  : yes
 
-  constructor:(@bongo, @resourceName, @presenceExchange='services-presence')->
+  NOTIFICATION_EXCHANGE_OPTIONS = 
+    type        : 'direct'
+    autoDelete  : yes
+
+  constructor:(@bongo, options = {})->
+    { @presenceExchange, @notificationExchange } = options
+    @presenceExchange     ?= 'services-presence'
+    @notificationExchange ?= 'notification-control'
     @services = {}
     @clients  = {
       bySocketId    : {}

  addClient:(socketId, exchange, routingKey, sendOk=yes)->
    if sendOk
      @bongo.respondToClient routingKey, {
        method    : 'authOk'
        arguments : []
        callbacks : {}
      }

    clientsByExchange.push client

  rejectClient:(routingKey, message)->
    console.log 'rejecting', routingKey
    return console.trace()  unless routingKey?
    @bongo.respondToClient routingKey, {
      method    : 'error'
      arguments : [message: message ? 'Access denied']
      callbacks : {}
    }

  fetchNotificationExchange:(callback)->
    @bongo.mq.connection.exchange(
      @notificationExchange
      NOTIFICATION_EXCHANGE_OPTIONS
      callback
    )

  joinClient: do ->

