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();
}
}