Requires socket.io as well