client side socket.io