RocketMQ-c#代碼

導入包:

https://github.com/gaufung/rocketmq-client-dotnet/tree/master

using org.apache.rocketmq.client.consumer.listener;
using org.apache.rocketmq.client.producer;
using System;
using System.Text;
using java.util;
using System.Windows.Forms;
using org.apache.rocketmq.client.consumer;
using org.apache.rocketmq.common.consumer;
using System.Threading;
using System.Collections.Generic;

namespace wf_RMQ3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                DefaultMQProducer p = new DefaultMQProducer("PG01");
                p.setNamesrvAddr("172.20.168.210:9876");
                p.setInstanceName("PER01");
                //p.setProducerGroup("myproducer");
                p.start();
                var data = Encoding.UTF8.GetBytes(textBox1.Text.ToString());
                org.apache.rocketmq.common.message.Message m = new org.apache.rocketmq.common.message.Message("TP01", data);
                p.send(m);
                p.shutdown();
                textBox1.Text = "";
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                //DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name");
                ////consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
                //consumer.setNamesrvAddr("172.20.168.210:9876");
                //consumer.subscribe("jinwei01", "*");
                //consumer.registerMessageListener(new TestListener());

                //consumer.start();





                //啓動推送型消費者 
                DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("CG01");
                consumer.setNamesrvAddr("172.20.168.210:9876");
                consumer.subscribe("TP01", "*");

                consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
                consumer.setConsumeTimestamp("20170422221800");
                consumer.setInstanceName("CER01");
                //consumer.setConsumerGroup("myconsumer01");
                //設置消費者端口,官方沒有該功能。適用端口有安全限制的服務器 
                //if (port > 0) consumer.setClientPort(port);
                //註冊推送事件 

                consumer.registerMessageListener(new ChainwayMessageListener());
                //啓動消費者 
                consumer.start();










            }
            catch (Exception ex)
            {
                throw ex;
            }

        }








    
        
    }

    public class ChainwayMessageListener : MessageListenerConcurrently
    {
        
        public ConsumeConcurrentlyStatus consumeMessage(List list, ConsumeConcurrentlyContext ccc)

        {


            for (int i = 0; i < list.size(); i++)
            {
                var msg = list.get(i) as org.apache.rocketmq.common.message.Message;
                byte[] body = msg.getBody();
                var str = Encoding.UTF8.GetString(body);

                MessageBox.Show(str);
                Console.Write(str);
                continue;


            }
            return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
        }
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章