53 lines
1.6 KiB
C#
53 lines
1.6 KiB
C#
|
using RabbitMQ.Client;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
|
|||
|
namespace RabbitMqTest
|
|||
|
{
|
|||
|
public abstract class RabbitmqBase
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 创建通道
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
protected virtual IModel GetChannel() {
|
|||
|
var factory = new ConnectionFactory { HostName="localhost" };
|
|||
|
var connection = factory.CreateConnection();
|
|||
|
return connection.CreateModel();
|
|||
|
}
|
|||
|
|
|||
|
private static string MessageChars = @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789<>''""";
|
|||
|
/// <summary>
|
|||
|
/// 生成随机消息
|
|||
|
/// </summary>
|
|||
|
protected virtual string RandomString(int len = 10) {
|
|||
|
var random = new Random();
|
|||
|
int charslen = MessageChars.Length;
|
|||
|
StringBuilder sb = new(len);
|
|||
|
for(int i = 0;i<len;i++) {
|
|||
|
var ci = random.Next(0,charslen-1);
|
|||
|
sb.Append(MessageChars[ci]);
|
|||
|
}
|
|||
|
return sb.ToString();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 创建队列
|
|||
|
/// </summary>
|
|||
|
protected virtual void QueueDeclare(IModel channel,string queueName) {
|
|||
|
channel.QueueDeclare(queueName,exclusive: false);
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 创建交换机
|
|||
|
/// </summary>
|
|||
|
protected virtual void ExchangeDeclare(IModel channel,string exchangeName) {
|
|||
|
channel.ExchangeDeclare(exchangeName,ExchangeType.Fanout,autoDelete: true);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|