title: socket.io: client-side emit callback never fires
body: <p>Messing around with socket.io just for proof of concept, everthing is working great so far except I can't get my emit callback to work on the client side. I've got to be missing something stupid here, but documentation is not killer at the moment. The server picks up the "getSomeData" event just fine, no errors anywhere.</p>
  
  <p>From what I could tell in the client socket.io source, it checks if the last argument to emit is a function and always uses it as a callback, but debugging any deeper than that was problematic for me.</p>
  
  <p>I feel like I have to be missing some core concept here..Is this not what <code>this.send(..)</code> is supposed to do? I could find only 1 useage in the example apps, and none where the client side code for that event emission was available.</p>
  
  <p><em>Update</em>: just to be clear, I am in fact intentionally emitting the event client side. The purpose of this was to see if socket.io could be used to allow clients to pull data on request in addition to receiving pushes. </p>
  
  <p>server:</p>
  
  <pre><code>var io = require('socket.io').listen(80);
  
  io.sockets.on('connection', function (socket) {
      socket.on("getSomeData", function() {
          this.send({data: "some random data"});
      });
  });
  </code></pre>
  
  <p>client: (console.log never happens)</p>
  
  <pre><code>&lt;script type="text/javascript" src="http://localhost/socket.io/socket.io.js"&gt;&lt;/script&gt;
  &lt;script type="text/javascript"&gt;
    var socket = io.connect('http://localhost');
    socket.emit("getSomeData", function(data) {
        console.log(data);
    });
  &lt;/script&gt;
  </code></pre>