【发布时间】:2018-12-17 16:51:28
【问题描述】:
我有这个代码:
public class Rabbit
{
public IConnection GetConnection(string hostName, string userName, string password)
{
ConnectionFactory connectionFactory = new ConnectionFactory();
connectionFactory.HostName = "1.2.3.4";
connectionFactory.UserName = "login";
connectionFactory.Password = "pass";
connectionFactory.Port = 5672;
return connectionFactory.CreateConnection();
}
public void Send(string queue, string data)
{
using (IConnection connection = new ConnectionFactory().CreateConnection())
{
using (IModel channel = connection.CreateModel())
{
channel.QueueDeclare(queue, false, false, false, null);
channel.BasicPublish(string.Empty, queue, null, Encoding.UTF8.GetBytes(data));
}
}
}
public string Receive(string queue)
{
using (IConnection connection = new ConnectionFactory().CreateConnection())
{
using (IModel channelconsumer = connection.CreateModel())
{
channelconsumer.QueueDeclare(queue, false, false, false, null);
BasicGetResult result = channelconsumer.BasicGet(queue, true);
if (result != null)
{
string data = Encoding.UTF8.GetString(result.Body);
Console.WriteLine(data);
return data;
} else
{
return null;
}
}
}
}
}
我运行我的代码:
var rabbit = new Rabbit();
rabbit.Send("sample.queue.queue", json);
我的 RABBIT 对象连接到 localhost,而不是配置在 GetConnection 中的服务器。
我可以请您更正此代码吗? 我的代码中的登录详细信息是正确的。
【问题讨论】:
-
我这里改了。在我的代码中,我有正确的数据。可能是GetConnection函数调用不正确?
标签: c#