socket.io on client side