Rabbitmq 通过“RawRabbit”进行双控制台应用程序通信`
我需要帮助,我有两个控制台应用程序可以通过Rabbitmq 通过“RawRabbit”进行双控制台应用程序通信`,rabbitmq,servicebus,rawrabbit,Rabbitmq,Servicebus,Rawrabbit,我需要帮助,我有两个控制台应用程序可以通过rawribrate进行通信 我首先编写了一个控制台应用程序,并添加了发布程序和接收器,以查看连接是否发生: var busClient = BusClientFactory.CreateDefault(busConfig); busClient.SubscribeAsync<UserMessage>(async (resp, context) => { Console.Clear(); Console.Write
rawribrate
进行通信
我首先编写了一个控制台应用程序,并添加了发布程序
和接收器
,以查看连接是否发生:
var busClient = BusClientFactory.CreateDefault(busConfig);
busClient.SubscribeAsync<UserMessage>(async (resp, context) => {
Console.Clear();
Console.WriteLine(resp.msg);
Console.WriteLine("Hi {0}, I am your father.", resp.name);
});
busClient.PublishAsync(new UserMessage { msg = "Hello my name is, " + name, name = name });`
var-busClient=BusClientFactory.CreateDefault(busConfig);
busClient.SubscribeAsync(异步(响应,上下文)=>{
Console.Clear();
控制台写入线(分别为msg);
WriteLine(“嗨{0},我是你的父亲。”,分别是名字);
});
PublishAsync(新用户消息{msg=“你好,我的名字是,”+name,name=name})`
这很有效
现在我想将接收器移动到另一个控制台应用程序,当我这样做时,它不工作。订户部分:
class Program {
class MyMessage {
public int Id { get; set; }
public string Message { get; set; }
}
static async Task Main(string[] args) {
IBusClient client = RawRabbitFactory.CreateSingleton(
new RawRabbitOptions {
ClientConfiguration =
new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build()
.Get<RawRabbitConfiguration>()
});
const string QUEUE_NAME = "myConsole";
const string EXCHANGE_NAME = "myRabbit";
await client.SubscribeAsync<MyMessage>(async msg => {
await Task.Run(() => {
Console.WriteLine("{0}: {1}", msg.Id, msg.Message);
});
}, ctx => ctx.UseSubscribeConfiguration(cfg =>
cfg.OnDeclaredExchange(dex => dex.WithName(EXCHANGE_NAME)
.WithAutoDelete(false)
.WithDurability(true)
//.WithType( ExchangeType.Topic )
)
.FromDeclaredQueue(dq => dq.WithName(QUEUE_NAME)
.WithExclusivity(false)
.WithDurability(true)
.WithAutoDelete(false))));
Console.ReadLine();
}
}
类程序{
类MyMessage{
公共int Id{get;set;}
公共字符串消息{get;set;}
}
静态异步任务主(字符串[]args){
IBusClient=RawRabbitFactory.CreateSingleton(
新RawRabbit选项{
客户端配置=
新的ConfigurationBuilder()
.SetBasePath(目录.GetCurrentDirectory())
.AddJsonFile(“appsettings.json”)
.Build()
.Get()
});
const string QUEUE_NAME=“myConsole”;
常量字符串交换\u NAME=“myRabbit”;
等待客户端。订阅同步(异步消息=>{
等待任务。运行(()=>{
WriteLine(“{0}:{1}”,msg.Id,msg.Message);
});
},ctx=>ctx.UseSubscribeConfiguration(cfg=>
OnDeclaredExchange(dex=>dex.WithName(EXCHANGE\u NAME)
.WithAutoDelete(false)
.具有耐久性(真实)
//.WithType(ExchangeType.Topic)
)
.FromDeclaredQueue(dq=>dq.WithName(队列名称)
.具有排他性(假)
.具有耐久性(真实)
。使用自动删除(false));
Console.ReadLine();
}
}
第二部分:
class Program {
class MyMessage {
public int Id { get; set; }
public string Message { get; set; }
}
static async Task Main(string[] args) {
IBusClient client = RawRabbitFactory.CreateSingleton(
new RawRabbitOptions {
ClientConfiguration =
new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build()
.Get<RawRabbitConfiguration>()
});
const string QUEUE_NAME = "myConsole";
const string EXCHANGE_NAME = "myRabbit";
Action<IPublishContext> x = (ctx) => ctx.UsePublishConfiguration(xfg => xfg.OnExchange(EXCHANGE_NAME)); //.WithRoutingKey("mymessage"));
await client.PublishAsync<MyMessage>(new MyMessage { Id = 5, Message = "Hello RabbitMQ" }, x);
await client.PublishAsync(new MyMessage { Id = 4, Message = "Hello RabbitMQ" }, x);
Console.ReadLine();
}
}
类程序{
类MyMessage{
公共int Id{get;set;}
公共字符串消息{get;set;}
}
静态异步任务主(字符串[]args){
IBusClient=RawRabbitFactory.CreateSingleton(
新RawRabbit选项{
客户端配置=
新的ConfigurationBuilder()
.SetBasePath(目录.GetCurrentDirectory())
.AddJsonFile(“appsettings.json”)
.Build()
.Get()
});
const string QUEUE_NAME=“myConsole”;
常量字符串交换\u NAME=“myRabbit”;
操作x=(ctx)=>ctx.UsePublishConfiguration(xfg=>xfg.OnExchange(EXCHANGE_NAME));//.WithRoutingKey(“mymessage”);
wait client.PublishAsync(新的MyMessage{Id=5,Message=“Hello RabbitMQ”},x);
wait client.PublishAsync(新的MyMessage{Id=4,Message=“Hello RabbitMQ”},x);
Console.ReadLine();
}
}
订户部分:
class Program {
class MyMessage {
public int Id { get; set; }
public string Message { get; set; }
}
static async Task Main(string[] args) {
IBusClient client = RawRabbitFactory.CreateSingleton(
new RawRabbitOptions {
ClientConfiguration =
new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build()
.Get<RawRabbitConfiguration>()
});
const string QUEUE_NAME = "myConsole";
const string EXCHANGE_NAME = "myRabbit";
await client.SubscribeAsync<MyMessage>(async msg => {
await Task.Run(() => {
Console.WriteLine("{0}: {1}", msg.Id, msg.Message);
});
}, ctx => ctx.UseSubscribeConfiguration(cfg =>
cfg.OnDeclaredExchange(dex => dex.WithName(EXCHANGE_NAME)
.WithAutoDelete(false)
.WithDurability(true)
//.WithType( ExchangeType.Topic )
)
.FromDeclaredQueue(dq => dq.WithName(QUEUE_NAME)
.WithExclusivity(false)
.WithDurability(true)
.WithAutoDelete(false))));
Console.ReadLine();
}
}
类程序{
类MyMessage{
公共int Id{get;set;}
公共字符串消息{get;set;}
}
静态异步任务主(字符串[]args){
IBusClient=RawRabbitFactory.CreateSingleton(
新RawRabbit选项{
客户端配置=
新的ConfigurationBuilder()
.SetBasePath(目录.GetCurrentDirectory())
.AddJsonFile(“appsettings.json”)
.Build()
.Get()
});
const string QUEUE_NAME=“myConsole”;
常量字符串交换\u NAME=“myRabbit”;
等待客户端。订阅同步(异步消息=>{
等待任务。运行(()=>{
WriteLine(“{0}:{1}”,msg.Id,msg.Message);
});
},ctx=>ctx.UseSubscribeConfiguration(cfg=>
OnDeclaredExchange(dex=>dex.WithName(EXCHANGE\u NAME)
.WithAutoDelete(false)
.具有耐久性(真实)
//.WithType(ExchangeType.Topic)
)
.FromDeclaredQueue(dq=>dq.WithName(队列名称)
.具有排他性(假)
.具有耐久性(真实)
。使用自动删除(false));
Console.ReadLine();
}
}
第二部分:
class Program {
class MyMessage {
public int Id { get; set; }
public string Message { get; set; }
}
static async Task Main(string[] args) {
IBusClient client = RawRabbitFactory.CreateSingleton(
new RawRabbitOptions {
ClientConfiguration =
new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build()
.Get<RawRabbitConfiguration>()
});
const string QUEUE_NAME = "myConsole";
const string EXCHANGE_NAME = "myRabbit";
Action<IPublishContext> x = (ctx) => ctx.UsePublishConfiguration(xfg => xfg.OnExchange(EXCHANGE_NAME)); //.WithRoutingKey("mymessage"));
await client.PublishAsync<MyMessage>(new MyMessage { Id = 5, Message = "Hello RabbitMQ" }, x);
await client.PublishAsync(new MyMessage { Id = 4, Message = "Hello RabbitMQ" }, x);
Console.ReadLine();
}
}
类程序{
类MyMessage{
公共int Id{get;set;}
公共字符串消息{get;set;}
}
静态异步任务主(字符串[]args){
IBusClient=RawRabbitFactory.CreateSingleton(
新RawRabbit选项{
客户端配置=
新的ConfigurationBuilder()
.SetBasePath(目录.GetCurrentDirectory())
.AddJsonFile(“appsettings.json”)
.Build()
.Get()
});
const string QUEUE_NAME=“myConsole”;
常量字符串交换\u NAME=“myRabbit”;
操作x=(ctx)=>ctx.UsePublishConfiguration(xfg=>xfg.OnExchange(EXCHANGE_NAME));//.WithRoutingKey(“mymessage”);
wait client.PublishAsync(新的MyMessage{Id=5,Message=“Hello RabbitMQ”},x);
wait client.PublishAsync(新的MyMessage{Id=4,Message=“Hello RabbitMQ”},x);
Console.ReadLine();
}
}