using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using RabbitMQ.Client; using RabbitMQ.Client.Events; namespace RPCServer { class Program { static void Main(string[] args) { var factory = new ConnectionFactory() { HostName = "47.100.163.48", UserName = "admin", Password = "QMS@Adm06" }; var connection = factory.CreateConnection(); var channel = connection.CreateModel(); { channel.QueueDeclare(queue: "rpc_queue", durable: false, exclusive: false, autoDelete: false, arguments: null); channel.BasicQos(0, 1, false); var consumer = new EventingBasicConsumer(channel); channel.BasicConsume(queue: "rpc_queue", autoAck: false, consumer: consumer); Console.WriteLine(" [x] Awaiting RPC requests"); consumer.Received += (model, ea) => { string response = null; var body = ea.Body; var props = ea.BasicProperties; var replyProps = channel.CreateBasicProperties(); replyProps.CorrelationId = props.CorrelationId; Console.WriteLine(replyProps.CorrelationId); try { var message = Encoding.UTF8.GetString(body); Console.WriteLine(message); response = "{code:100,msg:have received}"; } catch (Exception e) { Console.WriteLine(" [.] " + e.Message); response = ""; } finally { var responseBytes = Encoding.UTF8.GetBytes(response); channel.BasicPublish(exchange: "", routingKey: props.ReplyTo, basicProperties: replyProps, body: responseBytes); channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false); } }; } } private static int fib(int n) { if (n == 0 || n == 1) { return n; } return fib(n - 1) + fib(n - 2); } } }
RabbitMQ RPCServer
猜你喜欢
转载自blog.csdn.net/farmwang/article/details/80295198
今日推荐
周排行