 
       @authenticate messageData, routingKey, (session)=>
         unless session then fail()
-        else if session?
+        else if session?.username
+          @addClient socketId, @notificationExchange, routingKey, no
           {username} = session
           @fetchNotificationExchange (exchange)->
             exchange.publish 'auth.join', {routingKey, username}
+        else
+          @rejectClient routingKey
 
     joinClient =(messageData, socketId)->
       {channel, routingKey, serviceType} = messageData

    autoDelete  : yes

  NOTIFICATION_EXCHANGE_OPTIONS = 
    type        : 'direct'
    autoDelete  : yes

  constructor:(@bongo, options = {})->

          unless ///^notification\.///.test routingKey
            return @rejectClient routingKey
          joinClientNotificationHelper.call this, messageData, routingKey, socketId

        when 'secret'
          @addClient socketId, routingKey, routingKey, no
        
