add disconnect event
add reconnect event and param to client constructor