improve the socket.io