title: socket.io socket.set and socket.get - what is the callback argument for?
body: <p>I just want to attach some variables to my sockets, but I don't understand the .get and .set methods. They both have a third argument for a callback. Can this be omitted? What is it for?! Does the callback itself intherit arguments?</p>
  
  <p>My best guess is that it's there for when socket.io isn't using memory store but is saving this stuff somewhere else and needs an error checking callback.</p>
  
  <pre><code>socket.on('set nickname', function (name) {
      socket.set('nickname', name, function (arguments) {
        doSomethingMysterious();
      });
  </code></pre>
  
  <p>I'm using socket.io 0.9.x</p>
  
  <p>The function is defined in socket.js</p>
  
  <pre><code>/**
   * Stores data for the client.
   *
   * @api public
   */
  
  Socket.prototype.set = function (key, value, fn) {
    this.store.set(key, value, fn);
    return this;
  };
  </code></pre>