socket.io skeleton