RabbitMQ 本地持久化

otp_win32_R15B01 下载
rabbitmq-server-2.8.1 下载

1、发送

            Uri uri = new Uri("amqp://127.0.0.1:5672/");

            ConnectionFactory cf = new ConnectionFactory();

            cf.VirtualHost = "/";
            cf.RequestedHeartbeat = 0;
            cf.Endpoint = new AmqpTcpEndpoint(uri);

            using (IConnection conn = cf.CreateConnection())
            {
                using (IModel ch = conn.CreateModel())
                {
                    ch.QueueDeclare("domo"truefalsefalsenull);

                    IMapMessageBuilder b = new MapMessageBuilder(ch);

                    IBasicProperties properties = ch.CreateBasicProperties();

                    properties.DeliveryMode = 2;

                    ch.BasicPublish("""domo", properties, System.Text.Encoding.Default.GetBytes("hello"));
                }
            }

 2、接收

            Uri uri = new Uri("amqp://127.0.0.1:5672/");

            ConnectionFactory factory = new ConnectionFactory();

            factory.VirtualHost = "/";
            factory.RequestedHeartbeat = 0;

            using (IConnection connection = factory.CreateConnection())
            using (IModel channel = connection.CreateModel())
            {
                while (true)
                {
                    BasicGetResult res = channel.BasicGet("domo"false/*noAck*/);
                    if (res != null)
                    {
                        try
                        {
                            bool t = res.Redelivered;
                            t = true;
                            Console.WriteLine(System.Text.UTF8Encoding.UTF8.GetString(res.Body));
                            channel.BasicAck(res.DeliveryTag, false);
                        }
                        catch { }
                    }
                }
            }

 

posted @ 2012-04-07 15:38  domo  阅读(798)  评论(0编辑  收藏  举报