ResponceMessage Receive(UnSubscribeMessage message)
        {
            lock (this)
            {
                _subscriberTransportMessageInfo = null;
            }

            if (message.RequestResponce)
            {
                return new ResponceMessage(true);
            }

            return null;
        }
        public bool Stop(out string operationResultMessage)
        {
            // This will stop the integration client and abort the connection.
            if (OperationalState == OperationalStateEnum.Operational)
            {
                UnSubscribeMessage message = new UnSubscribeMessage();
                message.RequestResponce = false;

                this.SendAddressed(IntegrationClientId, message);
            }

            ChangeOperationalState(OperationalStateEnum.NotOperational);

            if (_integrationClient != null)
            {
                _integrationClient.ConnectionStatusChangedEvent -= new TransportIntegrationClient.ConnectionStatusChangedDelegate(_integrationClient_ConnectionStatusChangedEvent);
                Arbiter.RemoveClient(_integrationClient);
            }

            _isStarted = false;

            operationResultMessage = string.Empty;
            return true;
        }