private IMessage RequestConnect(IMessageEnvelope envelope)
            {
                try {
                    var request = (ConnectRequest)envelope.Message;
                    connector.Timeout = request.Timeout;
                    connector.OpenConnector(request.RemoteEndPoint);

                    var response        = Request(envelope);
                    var responseMessage = (ConnectResponse)response;
                    if (!responseMessage.Opened)
                    {
                        connector.Close();
                        throw new InvalidOperationException();
                    }

                    return(response);
                } catch (Exception) {
                    //TODO:
                    throw;
                }
            }