chapter 7 node and socket.io stuff