Make connect() and destroy() safe to call multiple times

 and 'close' event consistently fired as long as connect() successfully called