Remove the namespace
This commit is contained in:
parent
d65ca3beb1
commit
acf6cd1d0a
@ -4,78 +4,61 @@
|
||||
using RabbitMQ.Client;
|
||||
using RabbitMQ.Client.Events;
|
||||
|
||||
namespace RpcClient
|
||||
public class RpcClient
|
||||
{
|
||||
public class RpcClient
|
||||
private readonly IConnection connection;
|
||||
private readonly IModel channel;
|
||||
private readonly string replyQueueName;
|
||||
private readonly EventingBasicConsumer consumer;
|
||||
private readonly BlockingCollection<string> respQueue = new BlockingCollection<string>();
|
||||
private readonly IBasicProperties props;
|
||||
|
||||
public RpcClient()
|
||||
{
|
||||
private readonly IConnection connection;
|
||||
private readonly IModel channel;
|
||||
private readonly string replyQueueName;
|
||||
private readonly EventingBasicConsumer consumer;
|
||||
private readonly BlockingCollection<string> respQueue = new BlockingCollection<string>();
|
||||
private readonly IBasicProperties props;
|
||||
var factory = new ConnectionFactory() { HostName = "localhost" };
|
||||
|
||||
public RpcClient()
|
||||
connection = factory.CreateConnection();
|
||||
channel = connection.CreateModel();
|
||||
replyQueueName = channel.QueueDeclare().QueueName;
|
||||
consumer = new EventingBasicConsumer(channel);
|
||||
|
||||
props = channel.CreateBasicProperties();
|
||||
var correlationId = Guid.NewGuid().ToString();
|
||||
props.CorrelationId = correlationId;
|
||||
props.ReplyTo = replyQueueName;
|
||||
|
||||
consumer.Received += (model, ea) =>
|
||||
{
|
||||
var factory = new ConnectionFactory() { HostName = "localhost" };
|
||||
|
||||
connection = factory.CreateConnection();
|
||||
channel = connection.CreateModel();
|
||||
replyQueueName = channel.QueueDeclare().QueueName;
|
||||
consumer = new EventingBasicConsumer(channel);
|
||||
|
||||
props = channel.CreateBasicProperties();
|
||||
var correlationId = Guid.NewGuid().ToString();
|
||||
props.CorrelationId = correlationId;
|
||||
props.ReplyTo = replyQueueName;
|
||||
|
||||
consumer.Received += (model, ea) =>
|
||||
var body = ea.Body;
|
||||
var response = Encoding.UTF8.GetString(body);
|
||||
if (ea.BasicProperties.CorrelationId == correlationId)
|
||||
{
|
||||
var body = ea.Body;
|
||||
var response = Encoding.UTF8.GetString(body);
|
||||
if (ea.BasicProperties.CorrelationId == correlationId)
|
||||
{
|
||||
respQueue.Add(response);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public string Call(string message)
|
||||
{
|
||||
|
||||
var messageBytes = Encoding.UTF8.GetBytes(message);
|
||||
channel.BasicPublish(
|
||||
exchange: "",
|
||||
routingKey: "rpc_queue",
|
||||
basicProperties: props,
|
||||
body: messageBytes);
|
||||
|
||||
|
||||
channel.BasicConsume(
|
||||
consumer: consumer,
|
||||
queue: replyQueueName,
|
||||
autoAck: true);
|
||||
|
||||
return respQueue.Take(); ;
|
||||
}
|
||||
|
||||
public void Close()
|
||||
{
|
||||
connection.Close();
|
||||
}
|
||||
respQueue.Add(response);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public class Rpc
|
||||
public string Call(string message)
|
||||
{
|
||||
public static void Main()
|
||||
{
|
||||
var rpcClient = new RpcClient();
|
||||
|
||||
Console.WriteLine(" [x] Requesting fib(30)");
|
||||
var response = rpcClient.Call("30");
|
||||
var messageBytes = Encoding.UTF8.GetBytes(message);
|
||||
channel.BasicPublish(
|
||||
exchange: "",
|
||||
routingKey: "rpc_queue",
|
||||
basicProperties: props,
|
||||
body: messageBytes);
|
||||
|
||||
Console.WriteLine(" [.] Got '{0}'", response);
|
||||
rpcClient.Close();
|
||||
}
|
||||
|
||||
channel.BasicConsume(
|
||||
consumer: consumer,
|
||||
queue: replyQueueName,
|
||||
autoAck: true);
|
||||
|
||||
return respQueue.Take(); ;
|
||||
}
|
||||
|
||||
public void Close()
|
||||
{
|
||||
connection.Close();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user