+ to handle more error case, when connection failed, when connection closed, and defer the message delivery till 'ready'