T J*_*ski 1 c# networking rabbitmq
我正在尝试让 RabbitMQ 服务器正常工作。在本教程中,本地主机连接不是问题。但是每当我尝试通过网络执行相同的操作时,我都无法让应用程序连接到代理。
发送:
var factory = new ConnectionFactory() { };
factory.HostName = "192.168.1.52";
factory.Port = 5672;
factory.UserName = "guest";
factory.Password = "guest";
factory.VirtualHost = "/";
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
channel.QueueDeclare(queue: "hello",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null);
string message = "Hello World!";
var body = Encoding.UTF8.GetBytes(message);
channel.BasicPublish(exchange: "",
routingKey: "hello",
basicProperties: null,
body: body);
Console.WriteLine(" [x] Sent {0}", message);
}
Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
RabbitMQ 实例运行在另一台 PC 上,IP 地址为 192.168.1.52。RabbitMQ 使用的默认端口是 5672,我还没有更改用户名或密码,因此它们仍然是 guest 和 guest。
收到:
var factory = new ConnectionFactory() { };
factory.HostName = "192.168.1.52";
factory.Port = 5672;
factory.UserName = "guest";
factory.Password = "guest";
factory.VirtualHost = "/";
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
channel.QueueDeclare(queue: "hello",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null);
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
var body = ea.Body;
var message = Encoding.UTF8.GetString(body);
Console.WriteLine(" [x] Received {0}", message);
};
channel.BasicConsume(queue: "hello",
autoAck: true,
consumer: consumer);
Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
两个程序都抛出异常:
运行程序时,RabbitMQ.Client.dll 中抛出异常:“RabbitMQ.Client.Exceptions.ConnectFailureException”
但它不会破坏线程。一段时间后,威胁存在并出现以下错误:
ExtendedSocketException:连接尝试失败,因为连接方在一定时间后没有正确响应,或者连接失败,因为连接的主机没有响应。192.168.1.52:5672