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", true, false, false, null);
IMapMessageBuilder b = new MapMessageBuilder(ch);
IBasicProperties properties = ch.CreateBasicProperties();
properties.DeliveryMode = 2;
ch.BasicPublish("", "domo", properties, System.Text.Encoding.Default.GetBytes("hello"));
}
}
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", true, false, false, null);
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 { }
}
}
}
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 { }
}
}
}