title: socket.io callback is not being called
body: <p>Doing some socket.io work. Seems like my emit callback is not being fired. Am I doing it right? </p>
  
  <pre><code>this.logger.debug("joining room " + roomId);      
  callback = function() {
    return this.logger.debug('finished emitting join for socket');
  };
  // this.config.ioTypes.join resolves to "j"
  this.socket.emit(this.config.ioTypes.join, { 
    user: this.config.user,
    room: roomId
  }, callback);
  </code></pre>
  
  <p>My logging looks correct (note that the code above doesn't include everything that would generate these logs): </p>
  
  <pre><code>DEBUG: joining room 1245 &lt;-- first line from code above
  DEBUG: join event for socket etQIXGAm59DYkCPk1_gj 
  DEBUG: data: { user: 1, room: '1245' }             
  DEBUG: received join event for 1, data: { user: 1, room: '1245' }
  </code></pre>
  
  <p>And that's the end. It looks like socket.io is not calling my callback. But the docs are pretty clear: </p>
  
  <blockquote>
    <p>Sometimes, you might want to get a callback when the client confirmed
    the message reception.</p>
    
    <p>To do this, simply pass a function as the last parameter of <code>.send</code> or
    <code>.emit</code>. What's more, when you use <code>.emit</code>, the acknowledgement is
    done by you, which means you can also pass data along:</p>
  </blockquote>
  
  <p>Am I doing something wrong here?                    </p>