コード例 #1
0
        private void  onReceiveUnsubscribeRequest(MessageEnvelope message, ITransport transport)
        {
            IConsumer <T> consumer = null;

            lock (consumers)
            {
                if (consumers.ContainsKey(message.Body.UnsubscribeRequest.ConsumerId))
                {
                    consumer = consumers[message.Body.UnsubscribeRequest.ConsumerId];
                }
            }

            MessageEnvelope       resultMsg             = new MessageEnvelope();
            MessageBody           body                  = new MessageBody();
            UnsubscribeResult     unsubscribeResult     = new UnsubscribeResult();
            UnsubscribeResultCode unsubscribeResultCode = new UnsubscribeResultCode();

            body.selectUnsubscribeResult(unsubscribeResult);
            resultMsg.Body = body;
            resultMsg.Id   = message.Id;

            if (consumer != null)
            {
                try
                {
                    delConsumer(consumer);
                }
                catch (System.Exception e)
                {
                    // TODO
                }
                unsubscribeResultCode.Value = UnsubscribeResultCode.EnumType.success;
            }
            else
            {
                unsubscribeResultCode.Value = UnsubscribeResultCode.EnumType.subscriptionNotExists;
            }
            unsubscribeResult.Code = unsubscribeResultCode;
            try
            {
                transport.sendAsync(resultMsg);
            }
            catch (System.Exception e)
            {
                Console.WriteLine(e);
            }
        }
コード例 #2
0
        public virtual bool onReceive(MessageEnvelope message, ITransport transport)
        {
            if (message.Body.isSubscribeRequestSelected())
            {
                MessageEnvelope     resultMsg           = new MessageEnvelope();
                MessageBody         body                = new MessageBody();
                SubscribeResult     subscribeResult     = new SubscribeResult();
                SubscribeResultCode subscribeResultCode = new SubscribeResultCode();
                body.selectSubscribeResult(subscribeResult);
                resultMsg.Body            = (body);
                resultMsg.Id              = message.Id;
                subscribeResultCode.Value = SubscribeResultCode.EnumType.unknownQueue;
                subscribeResult.Code      = subscribeResultCode;
                try
                {
                    transport.sendAsync(resultMsg);
                }
                catch (System.Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }
            else if (message.Body.isUnsubscribeRequestSelected())
            {
                MessageEnvelope       resultMsg             = new MessageEnvelope();
                MessageBody           body                  = new MessageBody();
                UnsubscribeResult     unsubscribeResult     = new UnsubscribeResult();
                UnsubscribeResultCode unsubscribeResultCode = new UnsubscribeResultCode();
                body.selectUnsubscribeResult(unsubscribeResult);
                resultMsg.Body = (body);
                resultMsg.Id   = message.Id;
                unsubscribeResultCode.Value = (UnsubscribeResultCode.EnumType.unknownQueue);
                unsubscribeResult.Code      = (unsubscribeResultCode);
                try
                {
                    transport.sendAsync(resultMsg);
                }
                catch (System.Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }

            return(true);
        }