//刚刚接触,如有不对还望不吝指正
public static void StartUp()
{
#region 前期准备工作 ConnectionFactory factory = new ConnectionFactory();
factory.Uri = "amqp://guest:guest@localhost:5672/";
//架起物理链路
IConnection conn = factory.CreateConnection();
//创建通信信道
IModel channel = conn.CreateModel(); string exchangename = "我是负责转发信号的路由1";
string queuename = "我是信号的接收器1";
//架设信号路由
channel.ExchangeDeclare(exchangename, ExchangeType.Direct);
//架设信号接收器
channel.QueueDeclare(queuename, false, false, false, null);
//连通信号路由器和接收器
channel.QueueBind(queuename, exchangename, "", null); #endregion byte[] messageBodyBytes = System.Text.Encoding.UTF8.GetBytes("Hello, world!");
//channel.BasicPublish(exchangename,"",null,messageBodyBytes);
IBasicProperties props = channel.CreateBasicProperties();
props.ContentType = "text/plain";
props.DeliveryMode = 2;
channel.BasicPublish(exchangename,"",props,messageBodyBytes); ConnectionFactory service = new ConnectionFactory(); using (conn = service.CreateConnection())
{
using (IModel servicechannle = conn.CreateModel())
{
//ch.QueueDeclare(queuename, false, false, false, null);
//服务端接收消息队列
bool noAck = false;
BasicGetResult result = servicechannle.BasicGet(queuename, noAck);
if (result == null)
{
Console.WriteLine("没有消息");
}
else
{
servicechannle.BasicAck(result.DeliveryTag, false);
Console.WriteLine("接收消息成功:" + result.BasicProperties.ContentType);
Console.WriteLine("接收消息成功:" + result.BasicProperties.DeliveryMode);
Console.WriteLine("接收消息成功:" + System.Text.Encoding.Default.GetString(result.Body));
}
}
} conn.AutoClose = true;
}