close callback only call once when disconnect