public List <Message> ConsumeMessage(uint batchSize)
        {
            var request = new ConsumeMessageRequest(this._topicName, this._consumer, this._messageTag);

            request.IntanceId = this._instanceId;
            request.BatchSize = batchSize;
            var marshaller   = ConsumeMessageRequestMarshaller.Instance;
            var unmarshaller = ConsumeMessageResponseUnmarshaller.Instance;

            ConsumeMessageResponse result = _serviceClient.Invoke <ConsumeMessageRequest, ConsumeMessageResponse>(request, marshaller, unmarshaller);

            return(result.Messages);
        }
        public List <Message> ConsumeMessageOrderly(uint batchSize, uint waitSeconds)
        {
            var request = new ConsumeMessageRequest(this._topicName, this._consumer, this._messageTag);

            request.IntanceId   = this._instanceId;
            request.BatchSize   = batchSize;
            request.WaitSeconds = waitSeconds;
            request.Trasaction  = "order";
            var marshaller   = ConsumeMessageRequestMarshaller.Instance;
            var unmarshaller = ConsumeMessageResponseUnmarshaller.Instance;

            ConsumeMessageResponse result = _serviceClient.Invoke <ConsumeMessageRequest, ConsumeMessageResponse>(request, marshaller, unmarshaller);

            return(result.Messages);
        }
Example #3
0
        public override WebServiceResponse Unmarshall(XmlUnmarshallerContext context)
        {
            System.Xml.XmlTextReader reader = new System.Xml.XmlTextReader(context.ResponseStream);
            ConsumeMessageResponse   consumeMessageResponse = new ConsumeMessageResponse();
            Message message = null;

            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                case System.Xml.XmlNodeType.Element:
                    switch (reader.LocalName)
                    {
                    case Constants.XML_ROOT_MESSAGE:
                        message = new Message();
                        break;

                    case Constants.XML_ELEMENT_MESSAGE_ID:
                        reader.Read();
                        message.Id = reader.Value;
                        break;

                    case Constants.XML_ELEMENT_RECEIPT_HANDLE:
                        reader.Read();
                        message.ReceiptHandle = reader.Value;
                        break;

                    case Constants.XML_ELEMENT_MESSAGE_BODY_MD5:
                        reader.Read();
                        message.BodyMD5 = reader.Value;
                        break;

                    case Constants.XML_ELEMENT_MESSAGE_BODY:
                        reader.Read();
                        message.Body = reader.Value;
                        break;

                    case Constants.XML_ELEMENT_PUBLISH_TIME:
                        reader.Read();
                        message.PublishTime = long.Parse(reader.Value);
                        break;

                    case Constants.XML_ELEMENT_NEXT_CONSUME_TIME:
                        reader.Read();
                        message.NextConsumeTime = long.Parse(reader.Value);
                        break;

                    case Constants.XML_ELEMENT_FIRST_CONSUME_TIME:
                        reader.Read();
                        message.FirstConsumeTime = long.Parse(reader.Value);
                        break;

                    case Constants.XML_ELEMENT_CONSUMED_TIMES:
                        reader.Read();
                        message.ConsumedTimes = uint.Parse(reader.Value);
                        break;

                    case Constants.XML_ELEMENT_MESSAGE_TAG:
                        reader.Read();
                        message.MessageTag = reader.Value;
                        break;

                    case Constants.XML_ELEMENT_MESSAGE_PROPERTIES:
                        reader.Read();
                        AliyunSDKUtils.StringToDict(reader.Value, message.Properties);
                        break;
                    }
                    break;

                case System.Xml.XmlNodeType.EndElement:
                    if (reader.LocalName == Constants.XML_ROOT_MESSAGE)
                    {
                        consumeMessageResponse.Messages.Add(message);
                    }
                    break;
                }
            }
            reader.Close();
            return(consumeMessageResponse);
        }