通过RabbitMQ 进行消息通知
/// <summary>
/// 通过RabbitMQ 进行消息通知
/// </summary>
/// <param name="MQCode">消息队列的名称</param>
/// <param name="MQmessage">具体消息信息</param>
/// <returns></returns>
public bool funSendRabbitMQ(string MQCode, string MQmessage)
{
bool flag = true;
string Remesssage = "";
try
{
var mqFactory = new ConnectionFactory();
mqFactory.HostName = MQhost;//主机名,Rabbit会拿这个IP生成一个endpoint,这个很熟悉吧,就是socket绑定的那个终结点。
if (!string.IsNullOrEmpty(MQPort))
{
mqFactory.Port = int.Parse(MQPort);
}
mqFactory.UserName = MQusername;//默认用户名,用户可以在服务端自定义创建,有相关命令行
mqFactory.Password = MQpassword;//默认密码
using (var mqConnection = mqFactory.CreateConnection())//连接服务器,即正在创建终结点。
{
//创建一个通道,这个就是Rabbit自己定义的规则了,如果自己写消息队列,这个就可以开脑洞设计了
//这里Rabbit的玩法就是一个通道channel下包含多个队列Queue
using (var channel = mqConnection.CreateModel())
{
channel.QueueDeclare(MQCode, true, false, false, null);//创建一个名称为kibaQueue的消息队列
var properties = channel.CreateBasicProperties();
properties.DeliveryMode = 1;
string message = MQmessage; //传递的消息内容
channel.BasicPublish("", MQCode, properties, Encoding.UTF8.GetBytes(MQmessage)); //生产消息
}
}
Remesssage += "通知成功!";
}
catch (Exception ex)
{
flag = false;
Remesssage += "通知失败!" + ex.Message;
}
finally
{ }
return flag;
}