title: Socket.io, why does it need an http server?
body: <p>Looking at the following example from the Socket.IO lib (or any other example):</p>
  
  <pre><code>// note, io(&lt;port&gt;) will create a http server for you
  var io = require('socket.io')(80);
  
  io.on('connection', function (socket) {
    io.emit('this', { will: 'be received by everyone'});
  
    socket.on('private message', function (from, msg) {
      console.log('I received a private message by ', from, ' saying ', msg);
    });
  
    socket.on('disconnect', function () {
      io.emit('user disconnected');
    });
  });
  </code></pre>
  
  <p>It seems that Socket.IO is always dependent on a http server, to the point that it will create one for you, like in the example above. </p>
  
  <p>Since websockets are not HTTP, why are http servers needed? If it is only for fallbacks, why is it so thoughly integrated?</p>