From http://socket.io/#how-to-use with help from http://expressjs.com/guide.html and Stack Overflow